LINUX VIM编辑器

 

 

 

 

vi有3个模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。

命令模式:可以移动光标、删除字符等。

低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename       //打开filename文件 
:w       //保存文件 
:w vpser.net //保存至vpser.net文件 
:q          //退出编辑器,如果文件已修改请使用下面的命令 
:q!        //退出编辑器,且不保存 
:wq         //退出编辑器,且保存文件 

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

a      //在当前光标位置的右边添加文本 
i       //在当前光标位置的左边添加文本 
A     //在当前行的末尾位置添加文本 
I      //在当前行的开始处添加文本(非空字符的行首) 
O     //在当前行的上面新建一行 
o     //在当前行的下面新建一行 
R    //替换(覆盖)当前光标位置及后面的若干文本 
J    //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

1、使用上下左右方向键

2、命令模式下:h   向左、j   向下 、k   向上、l  向右。

空格键 向右、Backspace  向左、Enter  移动到下一行首、-  移动到上一行首。

四、删除、恢复字符或行(vi命令模式下使用)

x         //删除当前字符 
nx         //删除从光标开始的n个字符 
dd      //删除当前行 
ndd   //向下删除当前行在内的n行 
u       //撤销上一步操作 
U      //撤销对当前行的所有操作 

五、搜索(vi命令模式下使用)

特殊字符(五,九):

^:行首指示符      $:行尾指示符      .:任意字符指示符

\<:字符开始指示符   \>:字符结束指示符   *:0此或多次出现

[ ]:字符类定义

 

/vpser     //向光标下搜索vpser字符串 
?vpser     //向光标上搜索vpser字符串 
n           //向下搜索前一个搜素动作 
N         //向上搜索前一个搜索动作 

六、跳至指定行(vi命令模式下使用)

n+        //向下跳n行 
n-         //向上跳n行 
nG        //跳到行号为n的行 
G           //跳至文件的底部

七、设置行号(vi命令模式下使用)

:set  nu     //显示行号 
:set nonu    //取消显示行号

八、复制、粘贴(vi命令模式下使用)

yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

yw    //复制从光标开始到词尾的字符。

nyw   //复制从光标开始的n个单词。

y^      //复制从光标到行首的内容。  VPS侦探

y$      //复制从光标到行尾的内容。

p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。

P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

九、替换(vi命令模式下使用)

 

:s/old/new      //用new替换行中首次出现的old 
:s/old/new/g         //用new替换行中所有的old 
:n,m s/old/new/g     //用new替换从n到m行里所有的old 
:%s/old/new/g      //用new替换当前文件里所有的old

 

 

十、编辑其他文件

:e otherfilename    //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

十二、vim-读文件

读(:r) 读命令将文件读入工作缓冲区。新文件并不覆盖工作缓冲区中的任何文本,而是被定位到命令中指定的地址之后(如果没有指定地址,就是为当前行)。使用地址0可以将文件读入到工作缓冲区的开始位置。

读命令语法格式如下:

:[address]r [filename]

1.如果省略address 和 filename,那么 vim将从磁盘读写入用户正在编辑的文件,且文本内容在当前光标的下一行。

2.在当前文件hello.txt中插入另外一个文件myfile.txt的内容:

hello.txt其内容是:hello world!

myfile.txt其内容是:this is a file.

#vim hello.txt

#:r myfile.txt

hello.txt文件内容如下:

hello world!

this is a file.

3. 在当前文件开头插入另外一个文件的内容: :0r filename

我们可以用数字指定在哪一行的后面开始插入另外一个文件的内容,
例如:
#vim hello.txt
#:3r myfile.txt 会把myfile.txt的内容插入到当前文件的第3行的下方。
 
同理,:0r myfile.txt 会把myfile.txt的内容插入到当前文件的第0行的下
方,也就是文件最开始的地方(尽管文件中并不存在真正的第0行,但是我们恰好
可以利用它)。
 
十三vim-写文件
写(:w) 写命令可以将工作缓冲区的部分或者全部内容写入文件中。使用地址可以将工作缓冲区的部分内容写入由文件名指定的文件中。如果不指定地址或文件,那么 vim将把整个工作缓冲区的内容写入正在编辑的文件中,并更新磁盘上的文件。

读命令语法格式如下:

:[address]w [filename]

:[address]w[!] [filename]

:[address]w>> [filename]

示例:

:w myfile.txt 将当前文件的内容写入到myfile.txt中,如果该文件

已存在则报错,不会修改原有内容。
:w! myfile.txt 将当前文件的内容写入到myfile.txt中,如果该文件
已存在则覆盖原有内容。
:w >>myfile.txt 将当前文件的内容追加到文件myfile.txt的末尾。
posted @ 2017-12-29 15:53  郭大侠1  阅读(254)  评论(0编辑  收藏  举报