如何在vim中搜索和替换ack?
我在Vim中使用Ack插件,这有助于我快速搜索项目中的字符串。但是,有时我想替换所有或一些出现的找到的字符串。你可以做一些类型的全局搜索和替换使用Vim arglist like this(
source)
: :args app/views/*/* :argdo %s/,:expire.*)/)/ge | update 但是,不是使用args,我宁愿通过Ack进行搜索,然后在找到的所有文件中执行替换。有没有办法做类似于argdo命令?
我决定使用ack和Perl在Vim之外解决这个问题,所以我可以使用更强大的Perl正则表达式而不是GNU子集。你可以将它映射到vimrc中的关键笔划。
ack -l 'pattern' | xargs perl -pi -E 's/pattern/replacement/g' 说明 ack ack是一个真棒命令行工具,是混合的grep,查找和完整的Perl正则表达式(不只是GNU子集)。它以纯Perl编写,它的速度快,它具有匹配高亮,在Windows上工作,它比程序员比传统的命令行工具更友好。使用sudo apt-get install ack-grep在Ubuntu上安装它。 xargs Xargs是一个旧的unix命令行工具。它从标准输入读取项目,并执行指定的命令,后面是为标准输入读取的项目。因此,基本上由ack生成的文件列表被附加到perl -pi -E的/ pattern / replacemnt / g’命令的末尾。 perl -pi Perl是一种编程语言。 -p选项导致Perl在你的程序周围创建一个循环遍历文件名参数的循环。 -i选项导致Perl在适当位置编辑文件。您可以修改此选项以创建备份。 -E选项使Perl执行指定为程序的一行代码。在我们的例子中,程序只是一个Perl正则表达式替换。有关Perl命令行选项 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |