大家VIM(一久新的器)[五]
找、替
?
搜、替的功能乎是每器必的功能,那在 vi(m) 中有有特殊的地方呢?然有,您忘了,vi(m) 是性十足的器。最特殊的地方是和表示式(regular expression, regexp)合在一起。的她是一 pattern 的表示法,在行作,如找或替,就依 pattern 去找,所有符合 pattern 的地方就行您所下的作。在元不 regexp,另立一元探,以免搞得昏。目前就不使用 regexp,您要找什就直接入什就了。
找
/ 在 c-mode 的情形下,按 / 就在左下角出一 /,然後 入您要找的字串,按 Enter 就始找。? 和 / 相同,只是 / 是向前(下)找,? 是向後(上)找。n 找。N 找(反向)。
* 找游所在之 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 得知目前所有的列表。