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

我喜欢的一件事是能够同时打开多个文件:

vi main.pl maintenance.pl

然后在他们之间跳来跳去

:n
:prev

然后查看哪个文件是打开的:

:args

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

:n test.pl

我希望它会被添加到我的文件列表中,但相反,它会清除我当前的文件列表,当我输入:args时,我只有test.pl打开。

那么我如何在我的args列表中添加和删除文件?


当前回答

我做了一个非常简单的视频来展示我使用的工作流程。基本上我使用Ctrl-P Vim插件,并将缓冲区导航映射到Enter键。

通过这种方式,我可以在普通模式下按Enter,查看打开的文件列表(在屏幕底部的一个小新窗口中显示),选择我想编辑的文件并再次按Enter。要快速搜索多个打开的文件,只需输入部分文件名,选择文件并按Enter。

视频中打开的文件不多,但当你开始有很多文件时,它会变得非常有用。

由于插件使用MRU顺序对缓冲区进行排序,您只需按两次Enter键就可以跳转到您正在编辑的最新文件。

插件安装完成后,你唯一需要做的配置是:

nmap <CR> :CtrlPBuffer<CR>

当然,您可以将它映射到不同的键,但我发现要输入的映射非常方便。

其他回答

你可以在你的.bashrc文件中添加vim和vim -p的别名:

alias vim="vim -p"

这将导致在选项卡中从shell打开多个文件,而不必随后在vim中调用:tab ball。

如果你要使用多个缓冲区,我认为最重要的事情是 设置隐藏 这样它就能让你切换缓冲区即使你要离开的缓冲区中有未保存的更改。

清单

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

:ls

开放

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

:e ../myFile.pl

增强的TAB补全功能(将set wildmenu放在你的.vimrc中)。

注意:你也可以使用:find,它会为你搜索一组路径,但是你需要先自定义这些路径。


切换

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

:b myfile

增强选项卡完成(仍然设置野生菜单)。

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


使用windows

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

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

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

使用-o或-o标志启动vim将打开每个文件各自的分割。


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

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

我使用了多个隐藏在~/中的缓冲区。vimrc文件。

迷你缓冲区资源管理器脚本也很好,可以获得缓冲区的紧凑列表。然后:b1或:b2…要转到适当的缓冲区或使用迷你缓冲区资源管理器并通过缓冲区使用TAB。

我使用缓冲区命令-:bn(下一个缓冲区),:bp(上一个缓冲区):buffers(列表打开缓冲区):b<n>(打开缓冲区n):bd(删除缓冲区)。:e <filename>将打开一个新的缓冲区。