您的位置:首页 > 运维架构 > Linux

linux中vim常用命令总结

2016-11-12 19:08 531 查看
   

  linux中vi和vim文本编辑器

1.分类:

  1)linux中全屏编辑器是Vim、Emacs等,linux分为全屏文本编辑器、行编辑器。

  2)按运行界面分类,字符界面编辑器和图形界面编辑器。常见的字符界面编辑器是

        vi、vim、Emacs、Nano等;常见的图形界面编辑器是Gedit

  3)交互式和非交互式分类。

2.vim编辑器

  1)vim的编辑器的模式

    命令模式:在这种模式下,可以通过vim的命令对文件的内容进行处理(复制、删 除、移动等),也可以通过按光标键来移动光标

   编辑模式:在这种模式下,可以在光标处输入内容

   命令顶模式:在命令模式下,用户输入冒号后,光标会跳到底行,然后输入命令

   命令模式-->输入a、A、i、I、o、O等命令-->编辑模式

   编辑模式-->按ESC键-->命令模式

 2)在命令模式下,输入:

:w 保存文件,不退出vi

:w filename 把vi中的内容保存到不存在的filename文件,不退出vi

:w! filename 把vi中的内容保存到已存在的filename文件,不退出vi

:w>>filename 把vi中的内容追加到filename文件,不退出vi

:n1,n2w filename 把n1行到n2行的内容保存到不存在的filename文件

:n1,n2w! filename 把n1行到n2行的内容保存到已存在的filename文件

:wq 保存文件,退出vi

:x 保存文件,退出vi

:ZZ 保存文件,退出vi

:q 不保存文件,退出vi(若文件已改变,则不能退出)

:q! 不保存文件,退出vi

:ZQ 不保存文件,退出vi

3. 在命令模式下,可以输入以下命令:

(1)光标移动命令

h: 左

l: 右

k: 上

j: 下

向左光标键

向右光标键

向上光标键

向下光标键

(2)插入命令

i:在光标处插入内容

I:在第一行插入内容

a:在光标后插入内容

A:在当前行的尾部插入内容

o:在当前行的下面插入新行

O:在当前行的上面插入新行

(3)删除命令

x:删除光标处的字符

X:删除光标前的一个字符

d0:删除从当前光标所在行的第一个字符到当前光标的前一个字符的一串字符

D:删除从当前光标所在的字符到当前光标所在行的最后一个字符的一串字符

dd:删除光标所在行的所有字符

dw:删除从光标处字符开始的一个单词

例如:a boy girl pig

如果光标在l处,dw后,结果是:a boy girpig

如果光标在l和p之间的空格处,dw后,结果是:a boy girlpig

如果光标在b处,dw后,结果是:a girl pig

#dd:删除从光标所在的行到其后的#-1行(#必须用数字代替)

#x:删除从光标所在的字符开始的#个字符(#必须用数字代替)

:n1,n2 d:删除n1行到n2行的内容

(4)复制命令

:n1,n2 t n3:把n1行到n2行的内容复制到第n3行的下一行

(5)移动命令

:n1,n2 m n3:把n1行到n2行的内容移动到第n3行的下一行

(6)修改/替换命令

r:输入一个字符替换光标处的一个字符

R:从光标处的字符开始替换,后面的字符一个一个被输入的字符覆盖

s:输入一串字符来替换光标处的字符

S:先清除光标所在的行,你可以在当前行输入一串字符
943b

cc:先清除光标所在的行,你可以在当前行输入一串字符

cw:修改一个单词

例如:ab cdef ghijk

光标在d处,输入cw后,结果是:ab cde$ ghijk,

此时若输入pqghd后,结果是:ab cpqghd ghijk

此时若输入p后按ESC键,结果是:ab cp ghijk

C:修改从光标处开始及其该行后面的部分

例如:ab cdef ghijk

光标在d处,输入cw后,结果是:ab cdef ghij$,此时输入pqghd后,结果是:ab cpqghd

(7)光标定位命令

0:定位到光标所在行的行首

$:定位到光标所在行的行末

:#:定位到第#行的行首

:$:定位到最后一行的行首

/exp:向后定位到字符串exp

?exp:向前定位到字符串exp

/^exp:定位到行首为字符串exp的行

/exp$:定位到行末为字符串exp的行

n,m ?/exp:从n行到m行向前搜索字符串exp (此命令有待商榷)

n,m |/exp:从n行到m行向前搜索字符串exp (此命令有待商榷)

(8)搜索替换命令

:s/exp1/exp2/g:将当前行的字符串exp1替换成字符串exp2

:n,m s/exp1/exp2/g:将n行到m行的字符串exp1替换成字符串exp2

:g/exp1/exp2/g:将当前行的字符串exp1替换成字符串exp2

:g/exp1/s//exp2/g:将全文中的字符串exp1替换成字符串exp2

(9)撤销命令

u

(10)缓冲区命令

默认情况下,vi使用无名缓冲区,例如:虽然将文件的某些部分删除了,但仍可以用u命名进行撤销。

yy:将光标所在的行放入无名缓冲区

Y:将光标所在的行放入无名缓冲区

p:将缓冲区中的内容粘贴到光标所在的行的下一行

P:将缓冲区中的内容粘贴到光标所在的行的上一行

"#yy:将光标所在的行放入缓冲区# (#必须用a~z代替

)

"#p:将缓冲区#中的内容粘贴到光标所在的行的下一行 (#必须用a~z代替)

"#P:将缓冲区#中的内容粘贴到光标所在的行的上一行 (#必须用a~z代替)

"#d:删除当前行,将当前行的内容放入缓冲区#

(11)其它命令

:set nu:显示行号

:set nonu:取消行号

:n 定位到下一个文件

:N 定位到上一个文件

vi 1.c 2.c 3.c:一次打开3个文件

首先会打开1.c,输入:n命令后,会打开2.c,再输入:n命令后,会打开3.c,

再输入:N命令后,会打开2.c,再输入:N命令后,会打开1.c。

Ctrl+G:显示当前编辑文件的信息

Ctrl+L:刷新屏幕

Ctrl+d:向后翻半屏

Ctrl+u:向前翻半屏

Ctrl+f:向后翻一屏

Ctrl+b:向前翻一屏

3.Vim编辑器读取文件

 1)打开新文件进行编辑

   :e /root/a2 (编辑器中的文件已经保存,否则会提示错误)

   :e! /root/a2 (不保存文件,强制打开)

 2)读取另一个文件的内容,并追加到当前文件的结尾

    :r /root/a2

 3)撤销和恢复

  u:撤销上一步操作,可以多次使用 

  ctrl+r:恢复已经撤销的操作,可以多次使用。 

 4)快速移动光标

  

 

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: