一、移动光标
h j k l 上 下 左 右
gg 跳至文首
G 调至文尾
ctrl-u 上翻半页(up)
ctrl-d 下翻半页(down)
ctrl-f 上翻一页(forward)
ctrl-b 下翻一页(backward)
w/e 跳到下一个字首/字尾,按标点或单词分割
W/E 跳到下一个字首/字尾,长跳,如end-of-line被认为是一个字
ge e的反向版本,跳转到上一个单词的结尾
b 跳到上一个字的字首
B 跳到上一个字的字首,长跳
0 跳至行首,不管有无缩进,就是跳到第0个字符
^/$ 跳转到本⾏的开始/结尾
gd 跳至当前光标所在的变量的声明处
m{mark} 把当前位置标记为mark,mark是 a-z 的字符
`{mark} 跳转到名为 mark 的标记位置
`` 上次跳转前的位置
`. 上次修改的位置
`^上次插⼊的位置
二、删除复制
dd 删除光标所在行
dw 删除一个字(word)
D 删除从光标位置到行末的文本
x 删除当前光标前的字符
X 删除当前光标所指向的字符
yy 复制一行
yw 复制一个字
p 粘贴粘贴板的内容到当前行的下面
P 粘贴粘贴板的内容到当前行的上面
三、插入模式
i 从当前光标处进入插入模式
I 进入插入模式,并置光标于行首
a 追加模式,置光标于当前光标之后
A 追加模式,置光标于行末
o 在当前行之下新加一行,并进入插入模式
O 在当前行之上新加一行,并进入插入模式
Esc 退出插入模式
四、编辑
J 将下一行和当前行连接为一行
cc 删除当前行并进入编辑模式
cw 删除当前字,并进入编辑模式
c$ 擦除从当前位置至行末的内容,并进入编辑模式
s 删除当前字符并进入编辑模式
S 删除光标所在行并进入编辑模式
xp 交换当前字符和下一个字符
. 重复上一次修改
u 撤销上一次修改
ctrl+r 重做上一次修改
~ 切换大小写,当前字符
>> 将当前行右移一个单位
<< 将当前行左移一个单位(一个tab符)
== 自动缩进当前行
五、查找替换
/pattern 跳转到本文件中下一个 pattern 出现的地方
?pattern 跳转到本文件中上一个 pattern 出现的地方
“\c” 忽略大小写
“\C” 大小写敏感
n/N 快速重复 / 查找
f{char}/t{char} 跳转到本行下一个char字符出现处/出现前
;/, 快速向后/向前重复 f{char} 查找
* 查找光标所在处的单词,向下查找,等价于/pattern,pattern是当前光标处的单词
# 查找光标所在处的单词,向上查找
:%s/old/new/g 搜索整个文件,将所有的old替换为new
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换
六、退出编辑器
:w 保存
:wq 保存并退出
:x 保存并退出
:q 退出,如果对缓冲区进行过修改,则会提示
:q! 强制退出,放弃修改