处理单个文件时,我习惯于:
/blah do some work n do some work n do some work
假设现在我想在Vim中加载的所有缓冲区上搜索一些模式,然后对它们进行一些工作,然后继续。我为这个工作流程使用了哪些命令?
我有以下映射(灵感来自Vimperator),使切换上一个/下一个缓冲区更容易。
nmap <C-P> :bp<CR> nmap <C-N> :bn<CR>
这对’n’非常好。完成文件处理后,只需点击CTRL-n,再次点击n,然后在下一个缓冲区中进行搜索。重做,直到你通过所有的缓冲区。
使用许多文件的另一种方式是参数列表。
当您启动vim时,它包含作为参数传递的任何文件(例如:vim someFile.txt someOtherFile.py)。 [括号]中的文件是当前文件。
:args [someFile.txt] someOtherFile.py
:n将带你到列表中的下一个文件,N将带你回来。您也可以使用:argadd添加到argslist,或者创建一个新的args列表
:n some.py files.py you.py want.py to.py work.py with.py or to open all *.py files recursively from some project. :n ~/MyProjects/TimeMachine/**/*.py
如果您的文件具有类似的更改,则参数列表也可以与宏一起工作(请参阅:help q)。只需在第一个文件中记录你的宏,完成:n移动到下一个文件,并停止录制。
qq/searchForSomethingAndDoStuffOrWhatever:nq
然后通过所有文件(6 @ q)运行你的宏,看看确保一切顺利,并且完成一个:墙。
这有点取决于你想做什么。如果你只是有一个与许多文件完全相同的更改(而且那些只是你加载的),我也喜欢:ba(:tabdo sp)命令。这很快,你可以看到发生了什么。
如果您打开了一堆缓冲区,您可以加载要在其中工作的文件,每个文件在窗口中,并对其进行正则表达式。
CTRL-w v :b someFile :sp anotherFile ... :windo :%s/foo/bar/g
我真的推荐FuzzyFinder,它使您的生活更容易打开文件时。
http://www.vim.org/scripts/script.php?script_id=1984
MMmMmmmm VIM很好!好极了! :)