绝影王

导航

 

vi编辑器功能:

 

1、vi共分为3种模式,分别是“一般模式”、“编辑模式”、“命令行模式”
1)一般模式
可以使用“上下左右”键来移动光标,可以使用“删除字符”或“删除整行”来处理文件内容,也可以使用“复制、粘贴”来处理文件数据;
2)编辑模式
在一般模式下无法进行编辑操作,要等到按下“i、I、o、O、a、A、r、R”等字母后才会进入编辑模式,按esc键退回到一般模式
3)命令行模式
在一般模式中,输入“:或/或?”就可以将光标移到最下面那一行,在这个模式中,可以搜索数据,读取、存盘、大量删除字符、离开vi、显示行号等操作都是在此模式下实现的。

 

2、一般模式下
移动光标
n<space>:n表示数字,表示移动光标到当前行往右n个位置处;
0:表示移动光标到当前行的开头;
$:表示移动光标到当前行的结尾;
H:移动光标到当前屏幕最上方那一行;
M:移动光标到当前屏幕中间那一行;
L:移动光标到当前屏幕最下方那一行;
G:移动光标到本文件的最后一行;
nG:移动光标到本文件的第n行;
gg:相当于1G;
n<Enter>:光标向下移动n行;

 

搜索与替换
/word:从光标位置开始,向下寻找一个名为word的字符串;
?word:从光标位置开始,向上寻找一个名为word的字符串;
n:n是英文字母n,表示重复前一个搜索动作;
N:N是应为字母N,表示反向重复前一个搜索动作;
:n1、n2s/word1/word2/g:表示在n1行与n2行之间搜索字符串word1,并替换为word2;
:1、$s/word1/word2/g:从第一行到最后一行寻找word1字符串,并替换为word2;
:1、$s/word1/word2/gc:从第一行到最后一行寻找word1字符串,并替换为word2,且替换前询问用户是否需要替换;

 

删除、复制、粘贴
x,X:在一行中,为向后删除一个字符(相当于[del]键),X为向前删除一个字符(相当于[backspace]键);
nx:n为数字,表示连续向后删除n个字符;
dd:删除光标所在的那一整行;
ndd:n为数字,从光标位置开始,删除向下n列;
d1G:删除光标所在位置到第一行的所有数据;
dG:删除光标所在位置到最后一行的所有数据;
d$:删除光标所在的位置到改行的最后一个字符;
d0:删除光标所在的位置到改行的最前面一个字符;
yy:复制当前行;
nyy:复制光标所在的向下n行;
y1G:复制光标所在行到第一行的所有数据;
y0:复制光标所在那个字符到该行行首的所有数据;
y$:复制光标所在那个字符到该行行尾的所有数据;
p,P:p为将以复制的数据粘贴到光标的下一行,P为粘贴到光标的上一行;
J:将光标所在行与下一列的数据结合为同一行;
c:重复删除多个数据,例如向下删除10行,[10cj];
u:复原前一个操作;
[ctrl]+r:重做上一个操作;
.:重复前一个动作;

 

3、编辑模式
i、I:i为从当前光标所在处插入,I为在当前所在行的第一个非空格符处开始插入;
a、A:a为从当前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入;
o、O:o为在当前光标所在的下一行处插入新的一行,O为在当前光标所在处的上一行插入新的一行;
r、R:r会替换光标所在的那一个字符,R会一直替换光标所在的文字,知道按下esc键;

 

4、命令行模式
:w:将编辑的数据写入到硬盘文件中;
:w!:若文件属性为“只读”时,强制写入该文件,不过,到底能不能写入,与文件权限有关;
:q:离开vi;
:q!:若曾修改过文件,又不想存储,可以使用!为强制离开不存储文件;
:wq:存储后离开若为:wq!则为强制存储后离开;
:e!:将文件还原到最原始的状态;
ZZ:若文件没有更改,则不存储离开,若文件已经更改,则存储后离开;
:w[filename]:将编辑的数据存储成另一个文件;
:r[filename]:在编辑的数据中,读入另一个文件的数据。即将filename这个文件内容加到光标所在行的后面;
:n1、n2 w[filename]:将n1到n2的内容存储成filename文件;
:! command:暂时离开vi到命令行模式下执行command的现实结果。例如“:! ls /home”,即可在vi中查看/home中以ls输出地文件信息;
:set nu:显示行号,设置之后,会再每一行的前缀显示改行行号;
:set nonu:取消行号;

 

5、文件的恢复与暂存盘
vi具有可恢复的功能。举例来说,当我们编辑一个文件时,假设名称为/tmp/passwd,那么在这个/tmp中就会有一个临时文件,文件名为/tmp/.passwd.swp,这是一个隐藏文件,我们所进行的一些修改,都会暂时存在该文件中,如果在文件修改过程中,系统死机,那么下次再重新vi /tmp/passwd时,系统就会告诉你,是否需要恢复成修改过程中得样子?如果按下R,就可以将数据恢复到修改过程的样子,而不是源文件。

 

 

以下为vim的附加功能:


6、块选择
vi几乎都是以行为单位,如果想要解决一个块范围的问题,则用一下命令:
v:字符选择,会将光标经过的地方反白选择;
V:行选择,会讲光标经过的帝反反白选择;
[ctrl]+v:块选择,可以用长方形的方式选择数据;
y:复制反白的地方;
d:将反白的地方删除掉;

 

7、多文件编辑
:n:编辑下一个文件;
:N:编辑上一个文件;
:files:列出当前vim打开的所有文件;

 

8、多窗口功能
:sp {filename}:开一个新窗口打开文件filename;
:sp:将前面一个文件再在新窗口中打开;
[ctrl]+wj:先按住[ctrl],再按下w后放在所有的键,然后按下j,则光标可以移动到下方的窗口;
[ctrl]+wk:先按住[ctrl],再按下w后放在所有的键,然后按下j,则光标可以移动到上方的窗口;
[ctrl]+wq:结束下方的窗口;

 

9、dos和linux文件格式转换(主要是将dos的换行符CRLF改为linux的LF)
[root@linux~] # dos2unix [-kn] file [newfile]
[root@linux~] # unix2dos [-kn] file [newfile]
参数:
-k:保留该文件原来的mtime时间格式;
-n:保留原来的旧文件,将转换后的内容输出到新文件。

posted on 2011-12-01 15:59  绝影王  阅读(247)  评论(0)    收藏  举报