vim实用高级命令
光标移动
- 下一个当前单词:*
- 上一个当前单词:#
- 下一个单词第一个字符:w
- 当前单词最后一个字符:e
- 下一个以空白字符为分隔的单词第一个字符:W
- 当前以空白字符为分隔的单词最后一个字符:E
- 前一个单词第一个字符:b
- 前一个以空白字符为分隔的单词第一个字符:B
- 下一个特定字符之前:t+字符 till
- 上一个特定字符之后:T+字符
- 下一个特定字符之上:f+字符 find
- 上一个特定字符之上:F+字符
- 当前行最后一个字符上:$
- 当前行最后一个非空字符上:g_
- 当前行第一个字符上:0
- 当前行第一个非空字符上:^
- 第一行:gg 或 :1
- 最后一行:G
- 第N行: :N
- 迅速移动到下一句开头:)
- 迅速移动到上一句开头:(
- 迅速移动到下一段开头:}
- 迅速移动到上一段开头:{
滚动屏幕
- 向下翻页:
<C+f> forward
- 向上翻页:
<C+b> backward
- 向下翻半页:
<C+d> down
- 向上翻半页:
<C+u> up
- 光标不动,向下逐行滚动:
<C+e> elder
- 光标不动,向上逐行滚动:
<C+y> younger
- 光标不动,使光标所在行翻到屏幕最上方:zt title
- 光标不动,使光标所在行翻到屏幕最下方:zb bottom
- 光标不动,使光标所在行翻到屏幕中间:zz
- 使光标移动到屏幕最上方:H high
- 使光标移动到屏幕最下方:L low
- 使光标移动到屏幕中间:M middle
文本修改
- d 加动作来进行删除(dd 删除整行);D 则相当于 d$,删除到行尾。
- c 加动作来进行修改(cc 修改整行);C 则相当于 c$,删除到行尾然后进入插入模式。
- s 相当于 cl,删除一个字符然后进入插入模式;S 相当于 cc,替换整行的内容。
- i 在当前字符前面进入插入模式;I 则相当于 ^i,把光标移到行首非空白字符上然后进入插入模式。
- a 在当前字符后面进入插入模式;A 相当于 $a,把光标移到行尾然后进入插入模式。
- o 在当前行下方插入一个新行,然后在这行进入插入模式;O 在当前行上方插入一个新行,然后在这行进入插入模式。
- r 替换光标下的字符;R 则进入替换模式,每次按键(直到 )替换一个字符。
- u 撤销最近的一个修改动作;U 撤销当前行上的所有修改。
- gU gu 使用v选中字符后,输入gU或gu可使选中文本变成大写或小写
文本选择
- i: 如:di), 删除()内所有内容,不包括()
- a: 如:ca", 修改""内包括""在内的所有内容
- 用v选中后
- [C-v], 选中多行文本
- 用A或I插入文本,输入ESC,会在选中的多行文本重复执行相同插入文本操作
重复执行
- ; 重复最近的字符查找(f、t 等)操作
- , 重复最近的字符查找操作,反方向
- n 重复最近的字符串查找操作(/ 和 ?)
- N 重复最近的字符串查找操作(/ 和 ?),反方向
- . 重复执行最近的修改操作
多文件操作
- :args 列出打开文件列表
- :n 打开下一个文件
- :N 打开上一个文件
- :ls 列出缓冲区列表
- :bnext 切换到下一个缓冲区
- :bprev 切换到前一个缓冲区
- :b 序号 切换到对应序号的缓冲区
- [C-^] 在最近编辑的文件之间切换Aug 16, 2020S
多窗口操作
- :sp 或 [C+w]s 水平拆分
- :vs 或 [C+w]v 垂直拆分
- [C+w]w 窗口切换
- [C+w]c 关闭窗口,最后一个窗口无效
- [C+w]q 退出窗口,最后一个窗口退出整个vim
- [C+w]= 平均调整每个窗口大小
- :tabnew 新建标签页
- :gt, :gT 切换标签页