红联Linux门户
Linux帮助

使用VIM编辑器

发布时间:2014-11-11 10:18:37来源:linux网站作者:renlifeng

Vim 自产生以来,历经不断革新,现在最新版的 Vim 已经具有很强大的功能,使用户能够更加轻松、便捷地使用它。


1Vim 的工作模式
1.1命令模式
开始进入 Vim 时处于命令模式,如果已经处于插入模式或末行模式,按<ESC>键可回到命令模式。在这种模式下,只能用按键指令,不能输入文字。
1.2插入模式
插入模式就是要把文本插入到要编辑的文件,插入位置根据所用的命令不同而不同。
从命令模式进入插入模式需要键入 i、a 、o、 r 及 I、A、 O、R等命令。在完成文本的输入后,必须用<ESC>键返回命令模式。
1.3末行模式
末行模式因命令出现在屏幕的最底部一行而得名。在命令方式下,键入某些特殊字符,如/、?、 :等,光标跳到屏幕末行并显示键入的末行字符,此时键入命令后回车,Vim 会根据需要在末行显示出一定的响应信息,同时将自动回到命令状态。


2  Vim 编辑文件的基本过程
在命令行键入 Vim testfile,其中 testfile 代表要打开的文件名,如果文件不存在,Vim 将自动新建一个名为 testfile 文件。
进入 Vim 后,按<i>键进入插入模式,即可进行文件的编写工作。光标可以由方向键来移动。
<BackSpace>键可以删去前一个字符。
写好文件后按<ESC>键可回到命令模式,然后用:w 存档(注意,是冒号命令),这时还不会离开
Vim,要离开可按:q,也可以合起来用:wq,代表保存后离开。
2.1光标的移动
注意:本节所述都是在命令模式下的操作。
2.1.1
基本的光标移动
左       hBackspace 或左方向键
下        jEnter 或+或下方向键
上        k-或上方向键
右        l Space 或右方向键
向下翻页        Ctrl+f    PageDown
向上翻页        Crtl+b    PageUp
2.1.2复杂光标移动
0         移至行首,或是<Home>键
~         移至第一个非空白字符
$         移至行尾,或<End>键
G        移至文件尾(最后一行的第一个非空白字符处)
gg       移至文件首(第一行第一个非空白字符处)
w        移至下一个字首
W       同上,但会忽略一些标点符号
e        移至后一个字字尾
E        同上,但会忽略一些标点符号
b        移至前一个字字首
B       同上,但会忽略一些标点符号
H       移至屏幕顶部第一个非空白字符
M      移至屏幕中间第一个非空白字符
L        移至屏幕底第一个非空白字符
n|       移至第 n 个字符处
:n       或 n G 移至第 n 行行首,注:n 表示具体数字,如 1,2,3......
)         移至下一个句首
(         移至上一个句首
}         移至下一个段落首
{         移至上一个段落首

2.2基本编辑指令
2.2.1进入插入模式指令
i在光标所在字符前开始输入文字(insert)
a         在光标所在字符后开始输入文字(append)
o         在光标所在行下开一新行来输入文字(open)
I在行首开始输入文字
A         在行尾开始输入文字
O         在光标所在行上开一新行来输入文字
J         将下一行整行连接到本行(joint)
2.2.2删除指令
x        删除光标所在处的字符。也可用<Del>键。
X       删除光标所在位置前的字符。
dd      删除一整行。
dw     删除一个字(delete word)。
dG     删至文件尾。
D       删至行尾,或 d$(含光标所在处字符)。
d^      删除当前光标到行首的字符
d$ 删除当前光标到行尾的字符
2.2.3取代及还原
r        取代光标所在处的字符。
R       取代字符直至按<Esc>为止。
cc      取代整行内容。或大写 S 亦可。
cw     替换一个英文字。
~        光标所在处之大小写转换。
C       取代至行尾,即光标所在处以后的字都会被替换。或 c$。
c0      取代至行首,或 c~。
u       撤销前面的操作,即 undo,撤销的次数是没有限制的。
U      在光标没离开本行之前,回复所有编辑动作。
2.2.4复制
yy     复制光标所在行整行。或一个大写 Y。
2yy   复制两行。
y0 复制至行首,不含光标所在处字符。
y$     复制至行尾。含光标所在处字符。
yw    复制一个字。
yG    复制至文件尾。
y1G  复制至文件首。
2.2.5查找与替换
查找
/         按/会在左下角出现一个/,键入要查找的字串,按回车开始查找。
?         和/相同,只是/是向前(下)找,?则是向后(上)找。
n         继续查找。
N        继续寻找(反向)。
*        寻找光标所在处的字(要完全符合)。
#        同上,但*是向前(下)找,#则是向后(上)找。
g*      同*,但部分符合即可。
g#      同#,但部分符合即可。
替换
语法:[range]s/pattern/string/[c,e,g,i]
用 string 替代 pattern。Range 指的是范围,1,7 指从第一行至第七行,1,$指从第一行至最后一行,也就是整篇文章,也可以%代表;c 每次替换前会询问;e 不显示 error;g 不询问,整行替换;i 不分大小写。
2.3   离开
:q         如文件有修改而没保存,会警告,且无法离开。
:q!        放弃所有修改,强迫离开。
:wq      保存文件后离开,即使文件没有修改也会再保存一次。
:x         保存文件后离开,但如果文件没有修改,则不会做保存的动作。
:ZZ      和:x 完全一样。
:w        另存,不加文件名就是写入原文件。