linux命令之vim常用命令

vim常用命令

上图
vim1

vim 选择文本,删除,复制,粘贴

文本的选择

1
2
3
4
v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 
V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
Ctrl + v 从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。
ggVG 选中全部的文本, 其中gg为跳到行首,V选中整行,G末尾

选中后就可以用编辑命令对其进行编辑,如

1
2
3
4
5
d   删除 
y 复制 (默认是复制到"寄存器)
p 粘贴 (默认从"寄存器取出内容粘贴)
"+y 复制到系统剪贴板,也就是vim的+寄存器
"+p 从系统剪贴板粘贴

选中单词

1
2
3
vw   选中当前光标至单词结尾处
viw 选中整个单词,不带结尾空格
vaw 选中整个单词,带结尾空格

a会选择一个对象(an object)包括空格在内,而i只会选择一个对象的内部(an inner object)不包含空格。

删除一行

1
dd #删除后下面的行会移上来填补空缺。

删除字符

1
x #删除一个字符

删除单词

1
2
3
dw 删除当前光标至单词结尾处
viwd 删除选中整个单词,不带结尾空格
vaw 删除选中整个单词,带结尾空格

删除换行符

1
J #把两行合并为一行,也就是说两行之间的换行符被删除了

撤销

1
u

重做

1
如果你撤消了多次,你还可以用CTRL-R(重做)来反转撤消的动作。换句话说,它是对撤消的撤消。撤消命令还有另一种形式,"U"命令,它一次撤消对一行的全部操作。第二次使用该命令则会撤消前一个"U"的操作。用"u"和CTRL-R你可以找回任何一个操作状态。

追加

1
2
3
4
i  #命令可以在当前光标之前插入文本。
a #命令可以在当前光标之后插入文本。
o #命令可以在当前行的下面另起一行,并使当前模式转为Insert模式。
O #命令(注意是大写的字母O)将在当前行的上面另起一行。

使用命令计数

1
假设你要向上移动9行。这可以用"kkkkkkkkk"或"9k"来完成。事实上,很多命令都可以接受一个数字作为重复执行同一命令的次数。比如刚才的例子,要在行尾追加三个感叹号,当时用的命令是"a!!!"。另一个办法是用"3a!"命令。3说明该命令将被重复执行3次。同样,删除3个字符可以用"3x"。指定的数字要紧挨在它所要修饰的命令前面。

退出

1
2
ZZ #退出Vim,该命令保存当前文件并退出Vim。
ZQ #退出Vim,该命令不保存当前文件并退出Vim。

放弃编辑

1
2
:q! #丢弃所有的修改并退出
:e! #放弃所有修改并重新载入该文件的原始内容

以Word为单位的移动

1
2
w #可以将光标向前移动一个word的首字符上;比如"3w"将光标向前移动3个words。"b"命令则将光标向后移动到前一个word的首字符上。
e #会将光标移动到下一个word的最后一个字符。命令"ge",它将光标移动到前一个word的最后一个字符上。

移动到行首或行尾

1
2
$ #命令将光标移动到当前行行尾。"$"命令还可接受一个计数,如"1$"会将光标移动到当前行行尾,"2$"则会移动到下一行的行尾,如此类推。
^ #命令将光标移动到当前行的第一个非空白字符上。"0"命令则总是把光标移动到当前行的第一个字符上。

“0”命令却不能接受类似这样的计数,命令”^”前加上一个计数也没有任何效果。

移动到指定字符上

1
fx #在当前行上查找下一个字符x(向右方向),可以带一个命令计数"F"命令向左方向搜索。"tx"命令形同"fx"命令,只不过它不是把光标停留在被搜索字符上,而是在它之前的一个字符上。提示:"t"意为"To"。该命令的反方向版是"Tx"。这4个命令都可以用";"来重复。以","也是重复同样的命令,但是方向与原命令的方向相反。

以匹配一个括号为目的移动

1
用命令"%"跳转到与当前光标下的括号相匹配的那一个括号上去。如果当前光标在"("上,它就向前跳转到与它匹配的")"上,如果当前在")"上,它就向后自动跳转到匹配的"("上去.

移动到指定行

1
2
3
用"G"命令指定一个命令计数,这个命令就会把光标定位到由命令计数指定的行上。比如"33G"就会把光标置于第33行上。没有指定命令计数作为参数的话, "G"会把光标定位到最后一行上。"gg"命令是跳转到第一行的快捷的方法。
另一个移动到某行的方法是在命令"%"之前指定一个命令计数比如"50%"将会把光标定位在文件的中间. "90%"跳到接近文件尾的地方。
命令"H","M","L",分别将光标跳转到第一行,中间行,结尾行部分。
打赏

请我喝杯咖啡吧~

支付宝
微信