Normal---“i”insert模式--<ESC>Nomal模式
h,j,k,l 左下上右
x 删除字符
dd 删除一行
J(大写) 删除换行符,将光标移到第一行上随便一个位置,不一定在行末,只要位于第一行就行
u 撤销上一次操作,无限上一次,上上上、、、、、、
C-r 撤销的撤销
U 一次撤销对一行的全部操作,第二次使用该命令会撤销前一个“U”的操作
i 在当前光标之前插入
a 在当前光标之后插入
$ 移到本行行尾
o 在当前行下面另起一行
O 在当前行上面另起一行
nk 向上移动n行
na!<ESC> 在当前光标后面插入n个!,na!输入后出于insert模式,按<ESC>后回到nomal模式,则显示n个!
ZZ 保存当前文件并退出vim
:q! 回车 退出不保存所有修改,:进入冒号命令行模式,q,告诉编辑器退出,!强制命令执行修饰符
w! 覆盖已经存在的文件
i_Ctrl-H 删除光标前的字符
以word为单位的移动
w 光标移到下一个单词的开头/在当前行的最后一个word,w会移动到下一行的第一个word上
e 移动到下一个单词的最后一个字符
b 前一个单词的开头
ge 前一个单词的最后
gE,E,W,B, 忽略特殊符号的影响
^ 当前行第一个非空白字符上
0 移动到当前行的第一个字符
1$ 移动到当前行行尾
2$ 移动到下一行行尾
fx 搜索x
3fx 搜索第三个x
F 向左方向搜索
tx 在x前面的一个字符
Tx 方向相反
; 重复搜索命令
, 反向重复搜索命令
% 移动到与当前(匹配的)]}上,相反一样
G 最后一行
3G 第3行
gg 跳到第一行
60% 文件60%的地方
H Home第一行
M Middle中间
L Last 最后
CTRL-G 显示光标在文件什么位置
:set number 显示行号
:set nonumber 关闭
:set ruler vim右下角显示光标位置
CTRL-U 文本向下滚动半屏幕
CTRL-D 向上
CTRL-e 文本 向上滚动一行
CTRL-y 向下一行
CTRL-F 向前滚一整屏幕
CTRL-B 向后
zz 把当前行置于中央
zt 把当前行置于屏幕顶部top
zb 把当前行置于屏幕底端bottom
/word搜索字符串 搜索word,n找下面出现的单词word,3n第3次出现
?word 搜索word,n找上面出现的单词word、
:setignorecase 忽略大小写
* 把光标定位在当前word,按*则取下一个word,3*
# 上一个
/the\> 匹配到一个单词的结束处
/\<the\> 开头结尾都匹配
一行的开头和结尾
/the$ 匹配到行末的单词the
/^the 匹配到开头的the
匹配任何的单字符
.(点)
Dw 删除当前word,w向右移动一个word,d4b向左移动删除4个,
c 命令执行完后进入insert模式,d命令执行完后还是在nomal模式
X 删除当前光标左边的字符
x 代表dl(删除当前光标下的字符)
X 代表dh(删除当前光标左边的字符)
D 代表d$(删除到行尾的内容)
C 代表c$(修改到行尾的内容)
s 代表cl(修改一个字符)
S 代表cc(修改一整行
命令"3dw"和"d3w"都是删除3个word.
替换单个字符"r"命令也可以用"cl"或"s"完成同样的事情, 但用"r"的话就不需要再用<Esc>键回到Normal模式了.
"r"命令前辍以一个命令记数是将多个字符都替换为即将输入的那个
"r<Enter>".把一个字符替换为一个换行符
4r<Enter>"将把4个字符替换为一个换行符
"."命令会重复你做出的所有修改, 除了"u"命令CTRL-R和以冒号开头
的命令. (译者: "."需要在Normal模式下执行, 它重复的是命令, 而不是被改动的内容
你以"d"或"x"这样的命令删除文本时, 被删除的内容还是被保存了起
来. 你还可以用p命令把它取回来(在Vim中这叫put)
"P"会把它置于当前行的上一行.
把光标置于"teh"的e上执行命令"xp". 它的工作
如下:"x"删除字符e并把它放入一个寄存器中. "p"命令把被删除的e再放回到当前光标之后, 也就是h后面