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

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

done!
timothyqiu
2014 年 1 月 26 日
输完 :%s 后按 Ctrl+R "
582033
2014 年 1 月 26 日
@xiaopenyou 忽然想起来可以用正则替换的嘛, :%s/^foo.*you.*bar$/me/g
xiaopenyou
2014 年 1 月 26 日
@pright
@123123
@wklken
@timothyqiu
@582033
谢谢大家哦!比较还是:%s Ctrl+R "和:'<,'>s//foo/g最快捷
123123
2014 年 1 月 26 日
Ctrl+R " 挺不错的,学习了
samuelchen
2014 年 1 月 26 日
:%s/要替换的/替换后的/gc 最后的c加上是逐条确认,不加也可
chemzqm
2014 年 1 月 26 日
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