vim中更便捷的方式一次性处理多个删除替换操作?
从Excel中拷贝了一列--手机号码, 粘贴到Vim中
vim temp
18810720426 13311595986 17710369499 13261893845
需要做这么些步骤才能实现上述目的
:%g/^$/d :%s/^/'/g :%s/$/'/g :%s/n/,/g
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
谢谢! 使用sed还得要先保存文件. 知道了vim中还有一个macro. 要是能像命令行中使用管道或连接符就好了 可以写在一行 如:%g/^$/d && %s/^/'/g && %s/$/'/g && %s/n/,/g
回复
用"|"拼接就可以写成一行,%g/^$/d | %s/^/'/g | %s/$/'/g | %s/n/,/g
你要做的事实际并不算太简单,几个不同的工作必须得做,很难再简洁了,只能利用一些小技巧在一定程度上“简化”,比如写成一行:%s/([0-9]+)n/'1',/ | %s/n//
在Vim里做这种涉及多个操作的重复性工作,还是Macro更方便一些,用多个命令行去做的话,不如直接用sed了。