的,那就继续按,总会出现您要的。:-)
Tab 补全的功能,elvis 也有,但叫出 registers 列表的命令
则没有,您得自行记忆在您的脑袋瓜子里。而且 elvis 的补全
能力并没 vim 强。
天大的指令
. 这是什么?ㄚ,是英文句点啦!没错,就是英文句点。什么意思?重复前次的编辑动作。 这个指令太
高明了,只要是编辑动作(移动游标不算,冒号命令也不算) 都能够按英文句点来重复,要重复几次
都能够。
例如:您按了 yy,然后按 p 就会复制、贴上一整行,假如要重复这个动作的话, 就能够按 . ,也能够
把游标移到其他地方后再按。其他 dd,dw,r,cw 等编辑指令都能够这样来重复。 假如您要重复做某
些编辑动作时,千万千万一定要想到有这么一个英文句点重复指令。ㄚ,拜托啦!您一定要常用这个
指令。
疑难杂症
1.那 mouse 中键的剪贴功能更有吗?当然更有,不管在 console 或 X terminal 中都照用不误。 当然在
windows 下的话就不能用了,能够用 Shift-Insert 来代替。Ctrl-v 在 vim 中另有作用, 在 windows 下
就不必去麻烦他了。
2.ㄟ,我从 netscape 用 mouse copy 东东过来的时候,常常都搞得天下大乱耶! 要设成 :set paste,预
设是 map 至 F9 键的,您要 copy 之前先按一下 F9,copy 完后再按一次 F9 来回复。 这是 vim 的扩
充功能,elvis 没有。那在 elvis 怎么办?只好 :set noai 了。在 GUI 的版本应不会有这种情形。
set 的功能先不必去理他,往后会有一个单元专门讨论。
朋友!您睡着了吗?不要被吓到了,您只要开个档案,亲自操作一下就能心领神会。 那用 mouse 不是
更方便吗?不见得,yyp 来复制贴上一整行比较快,还是用 mouse 来拉比较快? 您能够试看看。
寻找/替换
搜寻、替换的功能几乎是每个编辑器必备的功能,那在 vi(m) 中有没有特别的地方呢? 当然有,您忘
了,vi(m) 是个性十足的编辑器。最特别的地方是和规则表示式 (regular expression,简称 regexp) 结合在一
起。简单的说她是一种 pattern 的表示法, 在执行动作,如寻找或替换,就会依据这个 pattern 去找,所
有符合 pattern 的地方就会执行您所下的动作。 在这个单元里不讨论 regexp,会另立一个单元来探讨,
以免搞得头昏脑胀。现在就暂不使用 regexp, 您要找什么就直接键入什么就对了。
寻找
/ 在 c-mode 的情形下,按 / 就会在左下角出现一个 /,然后键入您要寻找的字串,按个 Enter 就会
开始找。
? 和 / 相同,只是 / 是向前(下)找,? 则是向后(上)找。
n 继续寻找。
N 继续寻找(反向)。
更方便的寻找操作(vim 才有)
* 寻找游标所在处之 word(要完全符合)。
# 同上,但 * 是向前(下)找,# 则是向后(上)找。
g* 同 * ,但部份符合即可。
g# 同 # ,但部份符合即可。
n,N 之继续寻找键仍适用。
替换(substitute)
:[range]s/pattern/string/[c,e,g,i]
range 指的是范围,1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也就是整篇文章,也能够 %
代表。
还记得吗? % 是现在编辑的文章,# 是前一次编辑的文章。
pattern 就是要被替换掉的字串,能够用 regexp 来表示。
string 将 pattern 由 string 所取代。
c confirm,每次替换前会询问。
e 不显示 error。
g globe,不询问,整行替换。
i ignore 不分大小写。
g 大概都是要加的,否则只会替换每一行的第一个符合字串。
能够合起来用,如 cgi,表示不分大小写,整行替换,替换前
要询问是否替换。
[实例] :%s/Edwin/Edward/g
这样整编文章的 Edwin 就会替换成 Edward。
更进阶的寻找、替换的例子在说明 regexp 的时候还会再详述。 现在只知道最基本的用法就能够了!其
实光这样就很好用了。:-)
书签功能
这又是 vi(m) 的一个秘密武器,简单的说,您能够在文章中的某处做个记号(marks), 然后跑到其他地方
去编辑,在呼叫这个 mark 时又会回到原处。妙吧!
mx x 代表 26 个小写英文字母,这样游标所在处就会被 mark。
`x 回到书签原设定位置。
` 是 backward quote,就是 Tab 键上面那一个。
’x 回到书签设定行行首。
’ 是 forward quote,是 Enter 键隔壁那一个。
vim 对于书签的扩充功能
小写字母 只作用于单一档案内。
大写字母 可作用于编辑中之各档案间。
数目字 可作用于前次编辑的十个档案。
数目字的用法比较特别,’0 是回到前一次编辑档案中离开
前的最后位置,’1 则是回到前二次编辑档案的最后位置,
依此类推。您不必使用 m 来标示,vim 会自动记忆。
很玄吧!其实这是 viminfo 的功能,您要认真追究的话,
请 :h viminfo-file-marks。viminfo 关掉,就没这个功能了!
所谓前次指的是前次启动的 vim。
:marks 得知现在任何书签的列表。
叫档、存档、紧急回复
ㄟ,是不是在灌水呀!怎么开个档也成一个单元?那您就错了, 在 vi(m) 里叫档的花样可多了,而且又
能够多档编辑, 各编辑中的档案还能够互通讯息,这里面学问可大著呢!vim 就更骚包了, 也学人家
档案能够加密,虽说是噱头,但也还满好用的。
开档的一些花招
vim 档名
这样开档后,游标会落在档案最后一行的行尾,在档案屁屁后干什么呢?方便您能够继续编辑
嘛!
vim n 档名
游标会落在第 n 行的行首。
vim /string 档名
还记得吗? / 就是寻找指令,这样进入档案后游标就会落在第一个找到的 string 上, 还能够按 n
继续找 string 喔!哦,string 还能够使用 regexp 来表示喔。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




