处理单个文件时,我习惯于:
/blah
do some work
n
do some work
n
do some work
Run Code Online (Sandbox Code Playgroud)
假设现在我想在Vim中加载的所有缓冲区中搜索一些模式,对它们做一些工作,然后继续.我将为此工作流程使用哪些命令?
Kal*_*son 49
使用该bufdo命令.
:bufdo command
Run Code Online (Sandbox Code Playgroud)
:bufdo command大致相当于迭代每个缓冲区并执行命令.例如,假设您要在所有缓冲区中进行查找和替换:
:bufdo! %s/FIND/REPLACE/g
Run Code Online (Sandbox Code Playgroud)
或者假设我们要删除所有缓冲区中与正则表达式"SQL"匹配的所有文本行:
:bufdo! g/SQL/del
Run Code Online (Sandbox Code Playgroud)
或者我们可能希望在所有缓冲区上将文件编码设置为UTF-8:
:bufdo! set fenc=utf-8
Run Code Online (Sandbox Code Playgroud)
上面的内容可以推断为Windows(:windo),Tabs(:tabdo)和arguments(:argdo).有关更多信息,请参阅有关bufdo的帮助.
Tar*_*sch 33
我们可以vimgrep在argslist中使用和搜索.但首先让我们使用所有缓冲区填充argslist:
:bufdo :args ## %
Run Code Online (Sandbox Code Playgroud)
现在我们可以搜索我们的argslist
:vimgrep /blah/ ##
Run Code Online (Sandbox Code Playgroud)
哪里% == the current filepath和## == the arglist.
如果你想了解更多信息,我建议观看这些vimcast:填充arglist,用vimgrep搜索多个文件
Han*_*nes 10
我有以下映射(受Vimperator启发),可以更轻松地切换上一个/下一个缓冲区.
nmap <C-P> :bp<CR>
nmap <C-N> :bn<CR>
Run Code Online (Sandbox Code Playgroud)
这对'n'非常有效.当您使用完文件后,只需按下CTRL-n然后再次点击n,然后在下一个缓冲区中搜索.重做,直到你通过所有缓冲区.
处理许多文件的另一种方法是参数列表.
它包含启动vim时作为参数传递的所有文件(例如:) vim someFile.txt someOtherFile.py.[方括号]中的文件是当前文件.
:args
[someFile.txt] someOtherFile.py
Run Code Online (Sandbox Code Playgroud)
: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
Run Code Online (Sandbox Code Playgroud)
args列表也适用于宏(请参阅:help q),如果您对文件进行了类似的更改.只需将宏记录在第一个文件上,完成后:n移动到下一个文件,然后停止录制.
qq/searchForSomethingAndDoStuffOrWhatever:nq
Run Code Online (Sandbox Code Playgroud)
然后在所有文件(6 @ q)中运行宏,看一下确保一切顺利,然后用:wall完成.
这有点取决于你想做什么.如果您只有一个更改在许多文件中完全相同(并且那些是您加载的唯一文件),我也喜欢:ba(:tabdo sp)命令.这很快,你可以看到发生了什么.
如果你打开了一堆缓冲区,你可以加载你想要在其中工作的文件,每个文件都在一个窗口中,并对所有这些文件进行正则表达式.
CTRL-w v :b someFile
:sp anotherFile
...
:windo :%s/foo/bar/g
Run Code Online (Sandbox Code Playgroud)
我真的推荐使用FuzzyFinder,它可以让你在打开文件时轻松生活.
http://www.vim.org/scripts/script.php?script_id=1984
MMmMmmmm VIM很好!太可笑了!:)
| 归档时间: |
|
| 查看次数: |
18474 次 |
| 最近记录: |