Vim编辑器常用命令

1. 启动vim:vim 文件名(如果是不存在的,则新建)

2. 打开文件:vim 文件名(文件必须存在)

3. vim的模式

  • 正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空

以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴来处理你的文件数据。

  • 插入模式(按i键进入) 左下角显示--INSERT—

在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下【Esc】即可退出编辑模式。

  • 可视模式(不知道如何进入) 左下角显示--VISUAL—
  • 命令行控制界面(shift+:)

输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中,可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!

4. 插入命令

i	在当前位置生前插入
I	在当前行首插入
a	在当前位置后插入
A	在当前行尾插入
o	在当前行之后插入一行
O	在当前行之前插入一行

【r, R】 进入取代模式:

r   只会取代光标所在的那一个字符一次
R   会一直取代光标所在的文字,直到按下 ESC 为止;

5. 移动命令

h	        左移一个字符
l	        右移一个字符,这个命令很少用,一般用w代替。
k	        上移一个字符
j	        下移一个字符
w           光标跳到下个字的开头
e           光标跳到下个字的字尾
H           光标移动到这个屏幕的最上方那一行的第一个字符
M           光标移动到这个屏幕的中间那一行的第一个字符
L           光标移动到这个屏幕的最下方那一行的第一个字符
G           移动到这个文件的最后一行
nG          移动到这个文件的第n行(可配合:set nu)
gg          移动到这个文件的第一行,相当于1G
End         移动到这一行的最后面字符处:$,我测试好像不行
Home        移动到这一行的最前面字符处:0数字,但不能用数字小键盘上的数字
Ctrl + e	向下滚动一行
Ctrl + y	向上滚动一行
Ctrl + d	向下滚动半屏
Ctrl + u	向上滚动半屏
Ctrl + f	向下滚动一屏
Ctrl + b	向上滚动一屏
n<space>    光标向右移动n个字符
n<Enter>    光标向下移动n行

6. 撤销和重做

u		    撤销(Undo)
U		    撤销对整行的操作
trl + r		重做(Redo),即撤销的撤销。

7. 删除命令

x	                删除当前字符
X	                删除当前字符的前一个字符。X=dh
nx                  连续向后删除n个字符
3x	                删除当前光标开始向后三个字符
D	                删除当前字符至行尾。D=d$
dl	                删除当前字符, dl=x
dh	                删除前一个字符
dd	                删除当前行
dj	                删除上一行
dk	                删除下一行
d$                  删除光标所在处,到该行的最后一个字符
d0                  删除光标所在处,到该行的最前一个字符
dG                  删除光标所在到最后一行的所有数据
d1G                 删除光标所在行到第一行的所有数据
d$	                删除当前字符之后的所有字符(本行)
ndd                 删除光标所在的向下n行
10d	                删除当前行开始的10行。
kdgg	            删除当前行之前所有行(不包括当前行)
:1,$d	            删除所有行
:1,10d	            删除1-10行
:11,$d	            删除11行及以后所有的行
J(shift + j)	    删除两行之间的空行,实际上是合并两行。
jdG(jd shift + g)	删除当前行之后所有行(不包括当前行)

8. 复制和粘贴

p在当前光标后粘贴,如果之前使用了yy命令来复制一行,就在当前行的下一行粘贴。

p               将已复制的数据在光标下一行粘贴上
P               则为贴在光标的上一行

yy              复制当前行
y0              复制光标所在的那个字符到该行行首的所有数据
y$              复制光标所在的那个字符到该行行尾的所有数据
yG              复制光标所在行到最后一行的所有数据
y1G             复制光标所在行到第一行的所有数据
nyy	            拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
u               恢复前一个操作
Ctrl+r          重做上一个操作
.               是重复前一个操作
shift+p		    在当前行前粘贴
:1,10 co 20	    将1-10行插入到第20行之后。
:1,$ co $	    将整个文件复制一份并添加到文件尾部。

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制d

dp	交换当前行和其下一行
xp	交换当前字符和其后一个字符

9. 剪切命令

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

ndd		    剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
:1,10d		将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1, 10m		20 将第1-10行移动到第20行之后。

10. 高亮命令

shift+*     向下查找并高亮显示
shift+#     向上查找并高亮显示
g+d         高亮显示光标所属单词,
n           查找!

在vim编辑器中执行   :nohlsearch
永不出现,可以用    set nohlsearch

11. 退出命令

:w          保存编辑的内容
:w!         强制写入该文件,但跟你对该文件的权限有关
:q          离开vi
:q!	        强制退出并忽略所有更改
:wq         保存后离开
:x          保存后离开
:e!	        放弃所有修改,并打开原来文件。
ZZ          若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开

12. 命令行命令

:w filename         将编辑的数据保存成另一个文件(类似另存)
:r filename         在编辑的数据中,读入另一个文件的数据。即将【filename】 这个文件的内容加到光标所在行后面。

:n1,n2 w filename   将n1到n2的内容保存成filename这个文件。
:! command          暂时离开vi 到命令行模式下执行command的显示结果!
"""例如 【:! ls /home】即可在 vi 当中察看/home底下以ls输出的文件信息!""" 

:set nu             显示行号
:set nonu           与 set nu 相反,为取消行

Vim编辑器常用命令

上一篇:ubuntu下解决高并发socket最大连接数限制,tcp默认1024个连接


下一篇:解决 linux 下 buff/cache 占用过高的问题