如何在vim中搜索和替换ack?

前端之家收集整理的这篇文章主要介绍了如何在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命令行选项perldoc perlrun的更多信息。有关Perl的更多信息,请参阅http://www.perl.org/

原文链接:/bash/390835.html

猜你在找的Bash相关文章