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

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

vi main.pl maintenance.pl

然后在他们之间跳来跳去

:n
:prev

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

:args

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

:n test.pl

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

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


当前回答

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

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

其他回答

我认为您在查看已打开的文件列表时可能使用了错误的命令。

尝试执行一个:ls来查看你已经打开的文件列表,你会看到:

   1 %a   "./checkin.pl"            line 1
  2 #    "./grabakamailogs.pl"     line 1
  3      "./grabwmlogs.pl"         line 0
  etc.

然后,您可以通过引用列出的数字来浏览文件,例如: b: 3

或者你可以通过输入数字,但使用sb而不是b来分割屏幕。

作为旁白,%表示当前可见的文件,#表示备用文件。

您可以通过按Ctrl Shift 6在这两个文件之间轻松切换

编辑:像:ls,你可以使用:reg来查看你的寄存器的当前内容,包括0-9寄存器,其中包含你已经删除的内容。如果您想重新使用以前删除的文本,这尤其有用。

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

我有效处理多个文件的方法是使用tmux。

它允许你垂直和水平分割窗口,如下所示:

I have it working this way on both my mac and linux machines and I find it better than the native window pane switching mechanism that's provided (on Macs). I find the switching easier and only with tmux have I been able to get the 'new page at the same current directory' working on my mac (despite the fact that there seems to be options to open new panes in the same directory) which is a surprisingly critical piece. An instant new pane at the current location is amazingly useful. A method that does new panes with the same key combos for both OS's is critical for me and a bonus for all for future personal compatibility. Aside from multiple tmux panes, I've also tried using multiple tabs, e.g. and multiple new windows, e.g. and ultimately I've found that multiple tmux panes to be the most useful for me. I am very 'visual' and like to keep my various contexts right in front of me, connected together as panes.

Tmux还支持水平和垂直窗格,这是旧屏幕所不支持的(尽管mac的iterm2似乎支持它,但是,当前的目录设置对我来说不管用)。tmux 1.8

:ls

用于打开缓冲区的列表

:bp前一个缓冲区 :bn下一个缓冲区 :bn (n个数字)移动到第n个缓冲区 :b <filename-part> with tab-key提供自动补全功能(太棒了!!)

在某些版本的vim中,bn和bp实际上分别是bnext和bprevious。Tab自动补全在这种情况下很有用。

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

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

:mksession! ~/today.ses

上面的命令将当前打开的文件缓冲区和设置保存到~/today.ses。您可以使用

vim -S ~/today.ses

记起昨天讲到哪里就不麻烦了。;)

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

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