[跳转操作]
---------------------------------------
h 上, j 下, k 左, l 右
ctrl + e 移动页面
ctrl + f 上翻一页
ctrl + b 下翻一页
ctrl + u 上翻半页
ctrl + d 下翻半页
$ 跳到行尾
gg 跳到第一行
G 跳到最后一行
5G 跳到第五行
w 下一个单词第一个字符
W 下一个长单词第一个字符
e 下一个单词最后字符
E 下一个长单词最后字符
b 跳到上一个字
B 跳到上一个字,长跳
0 跳到行首的第0个字符,不管有没有缩进
^ 跳到行首的第1个字符
[查找替换操作]
---------------------------------------
fa 在当前行中找a,找到就跳转至a的位置
; 重复上一个f命令
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
:s/old/new/ 当前行出现的第一个匹配
:s/old/new/ 当前行所有匹配
:%s/old/new/g 搜索整个文件,将所有的old替换为new
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要确认是否替换
[编辑操作]
---------------------------------------
yy 复制一行
d 剪切
P 粘贴到光标前
p 粘贴到光标后
. 重复上一个命令
u 撤销改动
ctrl + r 重做
x 删除当前光标下的字符
X 删除当前光标左边的字符
diw 删除光标所在的单词,不包括空白字符
daw 删除当前光标所在的单词,包括空白字符
dw 删除一个字
D 删除到行尾的内容
dd 删除一行
s 修改一个字符
i 在光标之前插入
a 在光标之后插入
[窗口切换]
---------------------------------------
:args 显示当前编辑的文件
:next 切换到下一个文件
:next! 不保存当前文件就切换到下一个文件
:wnext 保存当前文件并切换到下一个文件
:prev 切换到上一个文件
:prev! 不保存当前文件就切换到上一个文件
:wprev 保存当前文件并切换到上一个文件
:first 定位首文件
:last 定位尾文件
:close 关闭当前窗口
:only 只显示当前窗口,关闭所有其他的窗口
:all打开所有的窗口
:qall 退出所有窗口
:qall! 退出所有窗口不保存
:wall 保存所有窗口
:wqall 保存并退出所有窗口
:split file 把当前窗口水平分割
:vsplit file 把当前窗口垂直分割
ctrl+^ 快速在最近打开的两个文件间切换
ctrl+w h 跳到左边的窗口
ctrl+w j 跳到下边的窗口
ctrl+w k 跳到上边的窗口
ctrl+w l 跳到右边的窗口
ctrl+w t 跳到最顶上的窗口
ctrl+w b 跳到最底下的窗口
Ctrl + w + r 向右或向下方交换窗口,而Ctrl + w + R则和它方向相反。
Ctrl + w + x 交换同列或同行的窗口的位置。vim默认交换当前窗口的与它下一个窗口的位置,如果下方没有
[辅助操作]
---------------------------------------
:sh 进入shell
gg=G 自动排版
g ctrl+g