h,j,k,l:分别代表左,下,上,右
x:删除单个字节
dd:删除一行;
J:合并上下行
u:单步撤销操作
CTRL+R:撤销多次
a:追加字符,将命令行模式改变成编辑模式,同时在当前光标之后插入字符
i:将命令行模式改变成编辑模式,同时在当前光标之前插入字符
o:将命令行模式改变成编辑模式,同时在当前行之后另起一行,把光标移到新行的离首部一个TAB键的位置。
O(大写的o):将命令行模式改变成编辑模式,同时在当前行之前另起一行,把光标移到新行的离首部一个TAB键的位置。
ZZ:退出vim编辑器。
q:放弃当前所有编辑的内容,并退出编辑器。
e:重载该文件的原始内容。
help:求助指令。
CTRL_J:help菜单下的跳转命令,直接跳转到指令的主题部分。
CTRL_T:help菜单下的返回命令,命令头的链接处。
CTRL_O:help菜单下跳转到较早的位置。
f(字符):单字节搜索命令。右方向搜索。
(numbers)f(字符):将光标定位到第numbers个字符的位置。右方向搜索。
F(字符):单字节搜索命令。左方向搜索。
(numbers)F(字符):将光标定位到第numbers个字符的位置。左方向搜索。
t,T如同f,F只是前者是将光标定位到当前字符串处里边的字符中,而后者是定位到具体的光标位置。
%:用于在相匹配的括号之间进行跳转。
(number)G:跳转到第number行。
G:把光标定位到最后一行。
gg:是把光标定位到第一行。
(number)%:将光标定位到文章的百分多少位置。
H:将光标定位到当前屏幕的首部。
M:将光标定位到当前屏幕的中部。
L:将光标定位到当前屏幕的底部。
CTRL+G:得到当前文件的位置。
set number:这会在每行的前面显示一个行号。
set nonumber:将每一行前面的行号的显示取消。
set ruler:在vim窗口的右下角显示当前光标位置。
CTRL+U:将文本向下滚动半屏,也就是将窗口向上滚动半屏。
CTRL+D:将窗口向下移动半屏,也就是将文本向上滚动半屏。
CTRL+E:文本向上滚动一行。
CTRL+Y:文本向下滚动一行。
CTRL+F:向前滚动一整屏。
CTRL+B:反向滚动一整屏。
zz:把当前行置为屏幕正*。
zt:将当前行置于屏幕顶端。
zb:将当前行置于屏幕底端。
/string:用于搜索一个string的字符串。
?string:用于相反的方向搜索string字符串。
set ignorecase:忽略字符字母的大小写。
set noignorecase:不忽略字符字母的大小写。
/one:命令历史记录。
/two:
/three:
光标定位到某个要查询的字符,然后按*:将搜索当前字符的下一个字符。#与之相反,3*表示查找到第三次
查找整个WORD:/string\> \>只匹配一个word的结束处。\<匹配到一个word的开始处。可以用g*和g#来匹配哪些包含在其其它string中的字串。
set hlsearch:高亮显示搜索的结果。
set nohlsearch:关闭高亮显示搜索的结果。
nohlsearch:仅仅关闭当前次的高亮显示。
set incsearch:该命令为在你键入目标字符的过程中vim就开始搜索工作。
set nowrapscan:这个设置会使搜索过程在文件结束时就停止工作。反向时在开头结束。
scriptnames:vim启动文件的位置。edit ~/.vimrc去编辑文件。
/^string:匹配一个出现在一行开头的string。
/string$:匹配一个出现在一行结尾的string。help
number:可以直接跳转到第number行。
CTRL+s:保持状态
CTRL+q:退出状态
charA.charB:可以匹配任何前一个字符为charA后一个字符为charB的情况。如果要查找.需要在前面加上反斜杠。
":可以返回到你上次跳转的地方。
CTRL-o:可以跳转到你更早些时间停置的光标位置。
CTRL-i:可以跳转到你当前更新的停置的光标位置。
jumps:可以列出你曾今跳转过位置的列表。
mchar:可以记下当前光标的位置,位置名为char,char从a到z一共可以使用26个自定义的标记。跳转时用'char.(不需要使用:)。
大写字母标记的可以在不同的文件之间切换。
小写字母标记只能在当前文件内有效。
marks:你可以使用marks查看标记的列表
':进行此次跳转之前的起跳点。
'':上次编辑改文件时光标最后停留的位置
[:最后一次修改的起始位置
]:最后一次修改的结束位置。
-------------------------------------------------------------------------------
小幅改动
-------------------------------------------------------------------------------
-------------------操作符命令和位移
d:命令可以后跟任何一个位移命令,它将删除从当前光标到位移终点处的文本内容。
dw:删除一个word字符;
de:
d$:删除当前光标到行尾的内容,这是一个内含的位移指令
排外的:不包括该位置的操作。
内含的:包含该位置在内。
--------------------改变文本
c:改变命令,执行后会进入insert模式
cw:它将删除一个word并让你置身于insert模式。
cwstring:执行cw命令后插入sting字符。
注意:c命令执行后空格将继续保存。
cc:改变整行。
c$:改变一直到行尾。
X:代表dh删除当前光标左边的字符。
x:代表d1删除当前光标右边的字符
D:代表d$删除到行尾的内容
C:代表c$修改到行尾的内容
s:代表c1修改一个字符
S:代表cc修改一整行
3dw和d3w都是删除3个word
(number)r:等待输入一个字符来代替当前光标所在的字符。number是将多个当前字符代替光标所在的字符。
r<Enter>:将当前光标所在的字符替换成换行符。
-----------------------重复改动
.:重复上次作出的改动。(除了u命令和CTRL-R和冒号开头的命令,在Normal模式下执行,它重复的是命令,而不是被改动的内容)
-----------------------visual 模式
v:可以操作单个的字符
V:只可以操作整行。
CTRL+v:用块形式来选择文本。
o:会使光标置于被选中文本的另一头。如果是块模式下,可以用O再左右两个角之间移动。
-----------------------移动文本
d或者x这样的命令删除文本时,被删除的内容会被保存起来,你可以用p命令把它取出来。
p是将取回来的内容放置在当前光标的后边,P是将取回来的内容放置在当前光标的前面。
-----------------------交换两个字符
xp
-----------------------复制文本
y:操作会将文本复制到一个寄存器中
yy:复制一整行。
Y:复制整行。
y$:复制光标置行尾。
*yy:一行内容复制到剪贴板中。
*p:将剪贴板中的内容复制过来。
daw:删除一个word.
-----------------------操作符命令+文本对象
和操作符+位移命令的区别:它不管当前光标所在的位置而把整个文本对象作为操作对象。
cis:修改一整个句子,空白不删除。
das:如果你想删除一个句子,希望把后边的空白也删除。
-----------------------替换模式
R:会让vim进入replace模式。
BS:会将原来的字符换回来。