结合vim sp和vsp的历史记录?

时间:2014-03-29 09:00:53

标签: vim

有没有办法轻松打开以前作为水平拆分打开的文件作为vim中的垂直拆分?也许某些方法可以将这些命令的历史记录结合起来?

使用vim时,我经常会使用:sp:vsp打开多个文件。稍后,当我想使用:sp重新打开之前使用:vsp打开的文件作为垂直拆分时,:vsp的历史记录中不存在该路径,因此我必须查看:sp的历史记录,然后将sp更改为vsp ...

使用案例

:sp ../../some/very/long/annoying/to/type/path/to/a/file.cpp

:wq

...时间过去......

:vsp <up arrow>(未找到,argh)

:sp <up arrow>(找到,修改spvsp

2 个答案:

答案 0 :(得分:3)

您正在同一会话中完成所有这些

使用:e:sp:vs创建的缓冲区以及各种其他命令列在&#34;缓冲区列表&#34;中。如果要在垂直窗口中重新编辑其中一个缓冲区,则用于编辑文件的原始命令并不重要。你只需:

:vert sb <Tab>

您正在两个不同的会话中执行此操作

Vim在会话之间保留已编辑文件的列表。要在垂直窗口中重新编辑以前编辑过的文件,请执行以下操作:

:oldfiles
(decide you want the number 15)
:vs#<15

答案 1 :(得分:2)

:autocmd会将每个:sp / :vsp命令添加到命令行历史记录中相应的:vsp / :sp命令,以便您可以回忆任何其他命令:

:autocmd! BufWinEnter * if histget(':', -1) =~# '^v\?sp\s' |
\   call histadd(':', substitute(histget(':', -1), '^v\?', '\=empty(submatch(0)) ? "v": ""', '')) |
\   endif

替代

有几个插件提供最近打开的文件列表,例如

这也提供了不同的映射以打开(垂直)分割。这样,您就可以避免在调用之前决定拆分类型,并且只有文件的历史记录。