在vim中,想批量替换一大串字符,怎么操作便捷?

2014-01-25 16:59:36 +08:00
 xiaopenyou
y复制后,没办法粘贴到:%s里?那怎么操作呢?肯定是有快捷办法的吧?
4968 次点击
所在节点    Vim
10 条回复
kran
2014-01-25 17:05:34 +08:00
试试在命令模式下按Ctrl-f。
pright
2014-01-25 18:03:25 +08:00
选中要替换的输:再输s,效果就是:'<,'>s//foo/g,不过如果替换字串太长就不好用
123123
2014-01-25 18:24:41 +08:00
目前做法是先复制到系统剪贴板,命令中用Shift+Insert粘帖
wklken
2014-01-25 18:59:11 +08:00
:w
ctrl+z
sed -i .......可以用‘#’代替‘/’不用转义中间的‘/’
fg
:e

done!
timothyqiu
2014-01-26 08:47:54 +08:00
输完 :%s 后按 Ctrl+R "
582033
2014-01-26 09:01:04 +08:00
@xiaopenyou 忽然想起来可以用正则替换的嘛, :%s/^foo.*you.*bar$/me/g
xiaopenyou
2014-01-26 09:37:16 +08:00
@pright
@123123
@wklken
@timothyqiu
@582033
谢谢大家哦!比较还是:%s Ctrl+R "和:'<,'>s//foo/g最快捷
123123
2014-01-26 10:59:36 +08:00
Ctrl+R " 挺不错的,学习了
samuelchen
2014-01-26 13:14:59 +08:00
:%s/要替换的/替换后的/gc 最后的c加上是逐条确认,不加也可
chemzqm
2014-01-26 19:26:16 +08:00
set clipboard='unnamed' 可以让默认粘贴板使用系统粘贴板而不是vim的无名粘贴板。
不过我通常做法是用vf[末尾字符]然后几个分号,然后c改为需要的结果,然后n和.或者N和,需要全局大量替换采用:%s,因为这个命令要考虑转义的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/98320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX