vim操作命令指北
2021.04.27 Tue

vim 是从 vi 衍生出来的,兼容 vi 并且拥有一些新的特性。
vim 的三种基本模式

  • 普通模式 移动光标,删除文本等,是 vim 启动后的默认模式
  • 插入模式 向编辑文件插入文本
  • 命令行模式 执行命令(😃(/)(?)(!)

移动

h 左   l 右   j 下   k
w 移动到下一个单词  b 移动到上一个单词

进入插入模式

  • i 在当前光标处进行编辑
  • a 在光标后插入编辑
  • I 在行首插入  A 在行末插入
  • o 在当前行后插入一个新行
  • O 在当前行前插入一个新行
  • cw 替换从光标所在位置后到一个单词结尾的字符

命令行模式下退出 vim

  • :q! 强制退出,不保存  :q 退出
  • :wq! 强制保存并退出
  • :w<文件路径> 另存为  :saveas 文件路径 另存为
  • :x 保存并退出  :wq保存并退出

普通模式下退出 vim

  • Shift + zz

普通模式下删除 vim 文本信息

  • x 删除游标所在的字符(Delete 同)
  • X 删除游标所在的前一个字符
  • dd 删除整行(ndd 删除 n 行)
  • dw 删除一个单词
  • d$或 D 删除至行尾
  • d^ 删除至行首
  • dG 删除至文档结尾处
  • d1G 删除文档至文档首部

vim 重复命令

在普通模式下,.(小数点)表示重复上一次的命令操作

在命令前面添加数字 N,表示重复命令的次数

  • 10x 删除 10 个连续字符
  • 3dd 删除 3 行文本
  • d5w 删除连续 5 个单词

游标的快速跳转

在命令行里输入set nu以显示行号

  • 行间跳转
    nG 或 ngg 游标移动到第 n 行
    gg 游标移动到第一行
    G 或 Shift + g 移动到最后一行
    Ctrl + o 快速回到上一次光标位置
  • 行内跳转
    w 到下一个单词的开头
    e 到当前单词的结尾
    b 到前一个单词的开头
    ge 到前一个单词的结尾
    0 或^ 到行头 $ 到行尾
    f<字母> 向后搜索字母并跳转到第一个匹配的位置
    F<字母> 向前搜索字母并跳转到第一个匹配的位置
    t<字母> 向后搜索字母并跳转到第一个匹配位置之前的一个字母
    T<字母> 向前搜索字母并跳转到第一个匹配位置之后的一个字母

复制及粘贴文本

  • yy 复制游标所在的整行
  • y^或 y0 复制到行首,不包含光标所在字符
  • y$ 复制到行尾,包含包括所在字符
  • yw 复制一个单词(ynw 复制 n 个单词)
  • yG 复制到文本末 y1G复制到文本开头
  • p(小写) 粘贴至光标后 P(大写) 粘贴至光标前

字符的替换及撤销

  • r+带替换字符 将游标所在字符替换为指定字母
  • R 连续替换,直到按下 Esc
  • cc 替换整行,即删除游标所在行,并进入插入模式
  • cw 替换一个单词,即删除一个单词,并进入插入模式
  • C(大写) 替换游标以后至行末
  • ~ 反转游标所在字母大小写
  • u 撤销一次操作({n}u 撤销 n 次操作)
  • U(大写) 撤销当前行的所有修改
  • Ctrl + r 撤销'撤销'的操作

缩进操作

  • >> 整行向右缩进
  • << 整行向左回退
  • 在命令行输入set shiftwidth=n 可以设置缩进长度
  • 命令行模式下输入ce 使光标所在行内容居中,同理还有 rile

快速查找

  • 普通模式下输入 / 然后输入要查找的字符串,回车后就会进行查找。
  • ?/ 功能相同,只不过 ? 是在当前位置向上查找而 / 是在当前位置向下查找
  • 进入查找之后,n 是查找下一个内容,N 是查找上一个内容
  • 命令行noh 然后回车即可取消搜索

高级查找

  • 普通模式下输入 \* 寻找游标所在处的单词
  • 普通模式下输入 \# 同上,但 \# 是向前(上)找,\* 则是向后(下)找
  • 普通模式下输入 g\*\* ,但部分符合该单词即可
  • 普通模式下输入 g\#\# ,但部分符合该单词即可

检测到页面内容有更新,是否刷新页面