如果我在命令行上打开包含多个文件的vim,例如加载了vim debug.log*debug.logdebug.log.1debug.log.2,我可以在它们之间进行导航,将它们分配给多个窗口(:split / :vsplit)还是这样?我知道这种操作模式的唯一快捷方式是:n,它将加载列表中的下一个文件。在这种多文件操作模式下,我还能做什么? (或哪个帮助主题涵盖了?)

评论

:previous(或:prev)与:n相反,并返回文件。

#1 楼

最相关的帮助主题是:ls,也称为
:files
:buffers

在您的vim debug.log*示例中,如果给出了:ls命令,则会看到:

:ls
  1 %a   "debug.log"                    line 1
  2      "debug.log.1"                  line 0
  3      "debug.log.2"                  line 0
Press ENTER or type command to continue


…表示第一个是活动缓冲区。

要在当前窗口中打开debug.log.2,请给:b 3:b debug.log.2命令显示缓冲区3.

要拆分窗口并在其中打开缓冲区2,请发出:sb 2命令。垂直分割的版本是:vert sb 2

:b命令有很多变体。浏览此处引用的帮助主题以了解它们。


此外,您可以调用vim -o debug.log*打开所有文件(每个文件单独分割),或者调用vim -O debug.log*打开它们每个都垂直分割。

#2 楼

除了200_success提到的原始vim功能之外,Vim的生态系统还包含许多插件来提供额外的功能,例如: /> LustyExplorer
ctrlp.vim
Command-T
其他很多,在堆栈溢出问题中提到了很多,您开始使用插件时,最好完全了解vim中的缓冲区和窗口。

评论


请阅读我们关于插件推荐答案的政策,并添加一些有关这些插件如何使用户受益的详细信息。

– 200_success
2015年2月6日在22:15

#3 楼

您也可以使用不同的参数打开vim。

在选项卡中打开文件:

vim -p debug.log*


以垂直分割打开文件:

vim -o debug.log*



有一个很酷且功能强大的插件,称为CtrlSpace:

https://github.com/szw/vim-ctrlspace

如果需要处理许多文件,这非常方便。只需将ctrl-space想象成每个选项卡的缓冲区列表即可。如作者所述,它提供了一种在文件之间导航的非常简单的方法:Vim-CtrlSpace是Vim插件,用于控制和组织Vim中的工作空间。包括管理缓冲区,文件,选项卡,会话和
最终项目。它的方法有些独特,但是您肯定会感到宾至如归,特别是如果您使用已拆分的窗口,选项卡,
缓冲区等。


评论


欢迎来到Vi / Vim!请阅读我们关于插件推荐答案的政策,并添加一些有关插件如何准确解决问题的详细信息。

– 200_success
2015年2月6日在22:14

相关:如何在拆分模式下打开多个文件?

– Kenorb
15年2月13日在12:31

#4 楼

如果要打开特定文件而不需要通过:ls进行操作,则可以使用以下任意一种方法:




:vs filename以垂直拆分的方式打开文件

:sp filename的功能相同,但是在水平拆分中

:tabe filename在新选项卡中打开

同样值得注意的是,如果您未指定文件名,您将打开当前文件的新拆分/标签,这对于长文件而言非常方便。

评论


:t是复制命令。对于:tabedit,您至少需要:tabe。

–tommcdo
2015年2月9日在11:19

哦,党,你是完全正确的。谢谢,我来编辑!

–汤姆
2015年2月9日在23:05

#5 楼

导航多个文件的实用快捷键很少: > CTRL-^(其中N是缓冲区编号)跳转到特定缓冲区。例如,




1Control + ^-转到第一个缓冲区

2Control + ^-转到第二个缓冲区
等。

这等效于N CTRL-^。导航当前目录。

使用N:buffer N)并在:Ex中使用一些自定义快捷方式,例如:拆分,通过Control + w,w / W跳转到选定的缓冲区,然后将其作为当前窗口(:Sex)。