作者longsili (longsili)
看板Editor
标题[vim ] 我所知道的search and replace
时间Sun Mar 7 13:50:13 2010
(转录自技客快手笔记)
http://quickteckiteasy.blogspot.com/
使用vim的人应该都知道vim search "/" 和 vim replace ":s"的强大。
如果再加上一些小技巧,
可以再发挥vim指令到更高段的境界。
技巧:search before replace。
通常在replace时,有时不敢全部替换,
所以会加上confirm :%s/foo/bar/cg
我个人是很不喜欢这个confirm,
因为我不知道现在是跳到哪个位置。
我的做法是,先search "/foo" ,把所有foo会出现的地方确认过。
然後再做replace。
做replace 可以写个map,
nnoremap ss :%s/< C-R >//
指令"< C-R >/"可以插入刚刚search的文字。
技巧:visual mode search
使用 "/%V foo"
就只会在「上一次选取的区段」做search。
这样子就会把搜寻的东西局限在某个区段,
然後再用上一个技巧按ss就可以了。
技巧:find next and repeat
搜寻要替换的字 "/foo"
做修改"cwbar"
搜寻下一个 "n"
repeat "."
辅助说明:
情况一:replace整个字。用"cw"
情况二:要在某个字前加bar_ 。用"ibar_"
情况三:要在某个字尾加_bar。在搜寻时要加/e
以这个例子来说我搜寻时就打"/foo/e"
之後就打"a_bar"就可以了。
这几个技巧都是先搜寻,再做replace,
这样子会对自己所做的replace比较有信心。
当然,别忘了搜寻时多利用regular expression,
可以做更多事。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.162.192
1F:推 dryman:如果要改的东西有特性-> regexp 03/07 15:36
2F:推 dryman:段落的话:20,40s/abc/foo/g 20-40行 03/07 15:37
3F:推 dryman:这是我习惯的用法:D 03/07 15:37
4F:推 oversky0:何不用 gvim 提供的取代视窗? 不必执着於命令模式啊。 03/07 22:33
5F:推 dryman:命令模式很好用啊XDDD 03/07 22:34
6F:推 Pash77:精通 vim 说搭配 g 更强大 03/08 03:30
7F:推 kornelius:直接 Visual 选取之後,":s" 就可以对区块搜寻了 03/08 17:53
8F:推 kornelius:s/搜寻/取代 03/08 17:54