Nat*_*ong 10 linux windows vim bash replace
我正在从一个特定于Windows的PHP编辑器切换到VIM,其理念是"为一切使用一个编辑器,并且非常好地学习它".
但是,我在PHP编辑器中喜欢的一个功能是它的"查找和替换"功能.我可以通过两种方式处理事情:
当然,我可以使用GUI来说明什么类型的文件,是否查看子文件夹,是否区分大小写等.
我现在正试图近似这种能力,试图用bash将它拼凑起来是相当繁琐的.可行,但乏味.
对于Linux和/或Windows,有没有人知道这样的好工具?(如果可能的话,我真的更喜欢GUI.)或者失败了,一个能够很好地完成工作的bash脚本?(如果它列出文件名和行号并显示代码片段,那就太好了.)
Vim使用命令内置多文件搜索:vimgrep(或:grep使用外部grep程序 - 这是Vim 7之前的唯一选项).
:vimgrep将在文件中搜索正则表达式并将匹配列表加载到缓冲区中 - 然后您可以在缓冲区中使用:cnext和:cprev命令在视觉上导航结果列表.它还支持使用**通配符搜索目录树.例如
:vimgrep "^Foo.*Bar" **/*.txt
Run Code Online (Sandbox Code Playgroud)
在当前目录下的任何.txt文件中搜索以Foo开头并包含Bar的行.
:vimgrep使用'quickfix'缓冲区来存储其结果.还有:lvimgrep一个使用特定于您正在使用的窗口的本地缓冲区.
Vim不支持开箱即用的多文件替换,但有些插件也会在vim.org上执行.
我不明白为什么你不能用VIM这样做.
只是找到
/Foo
Run Code Online (Sandbox Code Playgroud)
突出显示文件中所有Foo实例,您可以执行所需操作.
盲目替换
:% s/Foo/Bar/g
Run Code Online (Sandbox Code Playgroud)
显然这只是冰山一角.您可以在搜索范围内获得很大的灵活性,并为您的学期提供完整的正则表达式支持.它可能与您以前的编辑器完全不同,但我认为您原来的"使用一个编辑器"的想法是有效的.