zoukankan      html  css  js  c++  java
  • Linux常用命令-vi/vim

    Linux--vi/vim

      vi 文本编辑器    (vim vi的增强版本)

      打开文件

    vim [option] … file...

    +# 打开文件后,让光标处于第#行的行首
    
    +/PATTERN 打开文件后,光标处于第一个被parrent匹配到的行首
    
    -b file 二进制方式打开文件
    
    -d file1 file2 对比多个文件
    
    -m file 只读打开文件
    
    -e 直接进入ex 模式
    

    如果该文件存在,文件被打开并显示内容

    如果文件不存在,当编辑后第一次存盘时创建它

      vim的模式

    按键行为是依赖于vim的模式

    • 命令模式:默认模式,移动光标,剪切/粘贴文本
    • 插入或者编辑模式:修改文本
    • 扩展命令模式(末行模式):保存、退出等

    esc 键 退出当前模式

    ms

      模式转换

    • 命令模式 —> 插入模式
      • i 在光标所在处输入
      • I 在当前光标所在行的行首输入
      • a 在光标所在处后面输入
      • A 在光标所在行的行尾输入
      • o 在当前光标所在行的下方打开一个新行
      • O 在当前光标所在行的上方打开一个新行
    • 插入模式 —> 命令模式
      • esc
    • 命令模式—> 末行模式
    • 扩展命令模式—>命令模式
      • esc enter
      • esc esc

      关闭文件

    • 扩展命令模式
      • :q 退出
      • :q! 强制退出
      • :wq 保存退出
      • :x 保存退出
    • 命令模式
      • ZZ 保存退出
      • ZQ 不保存退出

      扩展命令模式

    • 按“:”进入ex模式
    • 创建一个命令提示符:处于底部的屏幕左侧
    • 命令:
      • w 写(存)磁盘文件
      • wq 保存并退出
      • x 写入并退出
      • q 退出
      • q! 不存盘退出
      • r filename 读文件内容到当前文件中
      • w filename 将当前文件内容写入另外一个文件,另存为
      • !command 执行命令
      • r!command 读入命令的输出

    命令模式光标跳转

    • 字符键跳转
      • h 左
      • l 右
      • j 下
      • k 上
      • # command 跳转#个字数的字符
    • 单词间跳转
      • w 下一个单词的次首
      • e 当前或者下一个单词的词尾
      • b 当前或者前一个单词的词首
      • #command 跳转#个单词
    • 当前页跳转
      • H 页首
      • M 中间
      • L 页底
      • zt 将光标所在行移动到屏幕顶端
      • zz 将光标所在行移动到屏幕中间
      • zb 将光标所在行移动到屏幕底端
    • 行首行尾跳转
      • ^ 跳转至行首的第一个非空白字符
      • 0 跳转至行首
      • $ 跳转至行尾
    • 行间移动
      • #G 扩展命令模式下:#跳转至第#行
      • G 最后一行
      • 1G gg 第一行
    • 句间移动:(.空格为一句)
      • ):下一句
      • (: 上一句
    • 段落间移动(空行)
      • } 下一段
      • { 上一段
    • 翻屏操作
      • ctrl+f 向文件尾部翻一屏
      • ctrl+b 向文件首部翻一屏
      • ctrl+d 向文件尾部翻半屏
      • ctrl+u 向文件首部翻半屏

      命令模式操作

    • 字符编辑
      • x 删除光标处的字符
      • #x:删除#个字符
      • xp 交换光标所在处的字符与后面的字符
      • ~ 转换大小写
      • J 删除当前行后的换行符
    • 替换
      • r 替换光标所在处的字符
      • R 切换成替换模式
    • 删除
      • d 删除,可以结合光标跳转字符
      • d$ 删除到行尾
      • d^ 删除到非空行首
      • d0 删除到行首
      • dw: 删除一个单词
      • de: 向后删除一个单词
      • db 想前删除一个单词
      • COMMAND
      • dd 删除光标所在的行
      • #dd 多行删除
      • dgg 删除到文件首部
      • dG 删除到文件尾部
      • D 相当于d$
    • 复制
      • y 复制,可以结合光标跳转字符
      • y$
      • y0
      • y^
      • ye
      • yw
      • yb
      • #command
      • yy 复制行
      • #yy 复制多行
      • Y 复制整行
    • 粘贴
      • p 如果是整行,则粘贴当前行所在行的下方,否则,则粘贴在当前光标所在行的后面
      • P如果是整行,则粘贴当前行所在行的上方,否则,则粘贴在当前光标所在行的前面
    • 改变命令
      • c 修改后切换成插入模式
      • c$
      • c^
      • c0
      • cb
      • ce
      • cw
      • #command
      • cc 删除当前行并输入新的内容
      • #cc
      • C 删除当前光标至行尾,并切换成插入模式
    • 10ialex [esc] 粘贴10次alex
    • 查找
      • /pattern 从当前光标所在处向文件底部查找
      • ?pattern 从当前光标所在处向文件首部查找
      • n 与命令同方向
      • N 与命令反方向
    • 撤销更改
      • u 撤销最近的更改
      • #u 撤销之前多次更改
      • U 撤销光标落在这行后所有此行的更改
      • ctrl+r 重做最后的 撤销更改
      • . 重复前一个操作
      • n. 重复前一个操作n次

      扩展命令模式

      地址定界

    :start,end

    # 具体第#行

    #,# 从左侧#表示起始行,到右侧#表示结尾行

    #,+# 从左侧#表示的起始行,加上右侧#表示的行数 :2,+3 表示2到5行

    . 当前行

    $ 最后一行

    $-# 倒数第#+1行

    .,$-1相当于当前行到倒数第二行

    % 全文

    /pat1/,/pat2/ 从第一个被pat1匹配到的行开始,一直到第一次被pat2匹配到的行开始

    #, /pat/

    /pat/,$

      使用方式 后跟一个编辑命令

    • d
    • y
    • w file :将范围内的行另存到指定的文件中
    • r file 在指定位置插入指定文件中的内容

      查找并替换

    • :s 在扩展模式下完成查找替换操作
    • 格式 :s/要查找的内容/替换为的内容/装饰器
      • 要查找的内容:可使用模式
      • 要替换的内容:不能使用模式,但可以使用1,2等,还可以使用“&”引用前面查找到整个内容
      • 修饰符
        • i 忽略大小写
        • g 全局替换 默认情况下,每一行至替换第一个出现的
        • gc 全局替换,每次替换前询问
      • 查找替换中的分隔符/可以替换成其他字符
        • @
        • #

      可视化模式

    • 允许选择的文本块
      • v 面向字符
      • V 面向行
      • ctrl -v 面向块
      • 可以化键可以与移动键结合使用
        • w )} 箭头等
      • 突出显示的文字可以被删除,复制,变更,过滤,收拾,替换等

      多文件操作

    vim file1 file2 file3

    • :next 下一个
    • :prev 前一个
    • :first 第一个
    • :last 最后一个
    • :wall 保存所有
    • :qall 退出所有
    • :wqall

      使用多个窗口

    • 多文件分割
      • vim -o|-O file1 file2
      • -o 水平分割
      • -O 垂直分割
      • 切换 ctrl+w
    • 单文件分割
      • ctrl-w,s 水平分割
      • ctrl-w,v 垂直分割
      • ctrl-w,q 取消相邻窗口
      • ctrl-w,o 取消全部窗口
      • :wqall

      定制vim的工作特性

    • 配置文件:永久生效
      • 全局:/etc/vimrc
      • 个人:~/.vimrc
    • 扩展模式:当前vim进程有效
      • 行号 set nu set nonu
      • 忽略字符大小写(搜索) set ic set noic
      • 自动缩进(和上一行对齐) set ai set noai
      • 高亮搜索 set hlsearch set nohlsearch
      • 语法高亮 syntax on syntax off
      • 文件格式
        • 启用windows格式: set fileformat=dos
        • 启用unix格式:set fileformat=unix
        • 简写 set ff=doc|unix
      • 设置贯标所在行的标识线 set cul set nocul
      • 获取帮助 :set all
      • vim 内置帮助
        • :help
        • :help topic
        • vimtutor

  • 相关阅读:
    ping
    android Handler总结
    配置网络测试环境的批处理
    shell 的选项解析
    [转] Linux 中共享库的搜索
    SecureCRT 脚本一则(0720.Rev.1)
    使用 Wget 完成自动 Web 认证(推 portal)
    shell 选项解析之需求一:多路径自动补全
    getopts 的简单模拟(09.12 Rev)
    ThinkPHP框架使用心得三 RBAC权限控制(2)简要原理
  • 原文地址:https://www.cnblogs.com/Xiao_Xu/p/11284898.html
Copyright © 2011-2022 走看看