如何在Vim中有效地处理多个文件?

我开始使用Vim开发Perl脚本,并开始发现它非常强大。

我喜欢的一件事是能够使用例如vi main.pl maintenance.pl一次打开多个文件,然后在它们之间跳转:

:n
:prev

并查看打开哪个文件

:args

而要添加一个文件,我可以说:

:n test.pl

我期望的将会被添加到我的文件列表中,但是它会清除我当前的文件列表,并且当我键入:args我只打开test.pl

那么如何将文件添加到我的参数列表并将其删除?


为什么不使用标签(在Vim 7中引入)? 您可以使用:tabn:tabp在标签之间切换:tabn使用:tabe <filepath>您可以添加一个新标签; 并使用常规:q:wq关闭选项卡。 如果将:tabn:tabp到您的F7 / F8键,则可以轻松地在文件之间切换。

如果没有那么多文件或者你没有Vim 7,你也可以将你的屏幕分割成多个文件:sp <filepath> 。 然后你可以用Ctrl + W在分屏之间切换,然后在你想要移动的方向上切换一个箭头键(或者代替箭头键,w代表下一代,W代表之前的分隔屏幕)


清单

要查看当前缓冲区的列表,我使用:

:ls

开盘

要打开一个新文件,我使用

:e ../myFile.pl

增强了选项卡的完成(将set wildmenu放入.vimrc )。

注意:您也可以使用:find哪个路径,但您需要先定制这些路径。


交换

要在所有打开的文件之间切换,我使用

:b myfile

与增强标签完成(仍然set wildmenu )。

注意:: :b#选择上次访问的文件,因此您可以使用它在两个文件之间快速切换。


使用Windows

Ctrl-W sCtrl-W v水平和垂直分割当前窗口。 你也可以使用:split:vertical split:sp:vs

Ctrl-W w在打开的窗口间切换, Ctrl-W h (或jkl )在打开的窗口中导航。

Ctrl-W c关闭当前窗口, Ctrl-W o关闭除当前窗口之外的所有窗口。

-o-O标志启动vim将打开每个文件在其自己的分割中。


所有这些我都不需要Vim中的标签,我的手指找到了我的缓冲区,而不是我的眼睛。

注意:如果您希望所有文件都转到Vim的同一个实例,请使用--remote-silent选项启动Vim。


:ls

用于打开缓冲区列表

  • :bp前一个缓冲区
  • :bn下一个缓冲区
  • :bnn数字)移动到第n个缓冲器
  • :b <filename-part>与提供自动完成的tab-key(真棒!!)
  • 在某些版本的vim中, bnbp实际上分别是bnextbprevious 。 在这种情况下,Tab自动完成功能很有用。

    或者当您处于正常模式时,使用^切换到您正在处理的最后一个文件。

    另外,您可以保存vim的会话

    :mksession! ~/today.ses
    

    上述命令将当前打开的文件缓冲区和设置保存为~/today.ses 。 您可以使用加载该会话

    vim -S ~/today.ses
    

    没有麻烦记住你昨天离开的地方。 ;)

    链接地址: http://www.djcxy.com/p/3859.html

    上一篇: How to effectively work with multiple files in Vim?

    下一篇: What does :q1 do in Vim?