一、使用教程

  1. vimtutor

  2. 显示行号:

    vim ~/.vimrc
    在文件的最后一行输入 set number 并保存退出
    

二、vim 三种工作模式

  1. 命令模式
  2. 编辑模式
  3. 末行模式
    vim三种工作模式

三、命令模式下的相关操作

  1. 保存退出
    ZZ
  2. 代码格式化
    gg=G
  3. 光标移动:
    • 左下上右:H J K L
    • 移动到行首:0
    • 移动到行尾:$
    • 移动到文件首部:gg
    • 移动到文件尾部:G
    • 跳转到第20行:20 + G
    • 从当前位置向下移动 n 行:n + enter
  4. 删除命令:
    • 删除光标后的一个字符:x(小写)
    • 删除光标前的一个字符:X(大写)
    • 删除一个单词:dw
    • 删除光标前的所有字符:d0
    • 删除光标后的所有字符:d$ 或者 D
    • 删除光标所在行:dd
    • 删除多行:ndd 删除光标所在行以及下面 n 行
    • 删除光标所在行到文件首部的字符:dgg
    • 删除光标所在行到文件尾部的字符:dG
  5. 撤销与反撤销:
    • 撤销:u
    • 反撤销:ctrl + r
  6. 复制粘贴:
    • 复制一行:yy
    • 复制多行:nyy
    • 粘贴到光标下一行:p
    • 粘贴到光标上一行:P(大写)
  7. 字符可视模式:v
    • 移动光标
    • 复制:y
    • 删除:d
    • 粘贴:p(小写 光标之后) P(大写 光标之前)
  8. 行可视模式:V
    • 增加缩进:>
    • 减少缩进:<
  9. 块可视模式:ctrl + V
    • o:将光标在块的左上角和右下角切换
    • O:将光标移动到所在行的对角
    • nl:将光标向右移动 n 个字符
    • nj:将光标向下移动 n 行
    • I:插入,按两次 ESC 退出(例如:多行注释操作)
  10. 替换操作:
    • r:替换光标后的字符
    • R:替换光标后的多个字符
  11. 查找操作:
    • /xxx
    • ?xxx
    • # 查找光标所在的单词
    • n 或 N 切换到下一个
  12. 想看 man 文档
    • 光标移动到要查的内容上,然后 章节号 + K
    • shell 命令:man 3 printf
    • man man

四、命令模式切换到文本编辑模式

  1. a:在光标所覆盖的字符后面插入
  2. A:行尾部插入
  3. i:在光标所覆盖的字符前面插入
  4. I:行首部插入
  5. o:在光标所在行的下一行开始插入
  6. O:在光标所在行的上一行开始插入
  7. s:删除掉光标覆盖的字符并开始插入
  8. S:删除光标所在的整行并开始插入

五、末行模式

  1. 从命令模式进入末行模式::
  2. 保存退出::wq:x
  3. 保存::w
  4. 退出::q
  5. 退出不保存::q!
  6. 跳转到第 n 行::n
  7. 删除从 m 行到 n 行::m,nd
  8. 末行模式下执行 shell 命令::!ls

六、替换

  1. 替换光标所在行的字符串::s/old/new
  2. 替换光标所在行所有的字符串::s/old/new/g
  3. 替换光标所在行所有的字符串并提示确认::s/old/new/gc
  4. 替换某些行范围内的字符串::10,20s/old/new
  5. 替换某些行范围内的所有字符串::10,20s/old/new/g
  6. 替换当前文档所有的::%s/old/new/g

七、分屏操作

  1. 当前文件分屏::sp:vsp
  2. 两个屏幕显示不同的文件::sp 文件名:vsp 文件名
  3. 分屏关闭::qall :wqall :q
  4. 屏幕切换:ctrl + w + w
  5. 打开的时候分屏:vi -o 多个文件名vi -O 多个文件名