怎么将一段文字替换成另一段?

2012-10-24 12:47:42 +08:00
 hector
这一段或者另一段很长,或者里面带着个换行符什么的。
4126 次点击
所在节点    Vim
13 条回复
SAGAN
2012-10-24 12:50:06 +08:00
v模式下分别选中两段文字x和p?
hector
2012-10-24 12:56:47 +08:00
@SAGAN 问题是要批量替换,比如把第100行到文件尾的所有
aaaaaaaa
bbbbbb
替换成
cccccccccccccc
wolflee
2012-10-24 14:40:51 +08:00
:100,$s/aaaaaaaa\rbbbbbb/cccccccccccccc/
hector
2012-10-24 15:54:46 +08:00
@wolflee 还有个很主要的问题,就是文字很长,输入不现实。
后来,利用q:编辑命令,勉强实现。

另块复制
111 aaa
222 bbbbbbbbbbbbbbb
333 cccccc
想把
aaa
bbbbbbbbbbbbbbb
cccccc
复制下来怎么操作?
013231
2012-10-24 15:59:17 +08:00
@hector CTRL-V進入快模式, 選擇要複製的部分, y.
wolflee
2012-10-24 17:32:00 +08:00
v选中以后y,命令模式按<C-R>接"复制
gastlygem
2012-10-24 17:52:37 +08:00
补充 @013231 Windows下可用 Ctrl+Q
cabbala
2012-10-24 18:19:23 +08:00
sed和awk欢迎你。。
hector
2012-10-25 02:18:06 +08:00
@013231
@wolflee
@gastlygem
@cabbala
我没描述清楚
因为长度不齐,bbbbbbbbbbbbbbb复制不全,最后没办法把aaa后面补了很多空格
benjiaminlam
2012-10-25 08:04:15 +08:00
:s
atom
2012-10-25 08:12:19 +08:00
换个思路。
vim也能以脚本方式调用,把很长的文字放在脚本里,就不用自己输入了。
http://man.chinaunix.net/newsoft/vi/doc/usr_26.html#26.4
013231
2012-10-25 13:33:19 +08:00
@hector `CTRL-V`, 選擇一列, 然後按`$`就可以選到行尾了, 長度不齊也没关系.
hector
2012-10-25 14:01:09 +08:00
@013231 感谢,亲测可以,傻瓜在那补空格,汗~

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

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

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

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

© 2021 V2EX