C++ 如何在处理多个文件时组织Vim缓冲区、窗口和选项卡

C++ 如何在处理多个文件时组织Vim缓冲区、窗口和选项卡,c++,vim,editor,C++,Vim,Editor,我一生都在使用VIM,但最近我有点厌倦了它,因为在一个大项目中同时处理20个左右的文件(具有500k LOC和数百个文件)时,我迷失在缓冲区、窗口和选项卡中 每当我执行:make,:grep等操作时,当前窗口中就会跳出新的缓冲区。 标签也是如此。在某个时候,这开始变得非常混乱,因为我真的必须关注VIM中的内容 控制这种行为的一种行之有效的简单方法是什么?作为一个长期使用vim的用户,我很难说出来,但是--也许是时候让您毕业成为一个成熟的IDE了。在大多数情况下,您仍然可以使用vim作为编辑器,但

我一生都在使用VIM,但最近我有点厌倦了它,因为在一个大项目中同时处理20个左右的文件(具有500k LOC和数百个文件)时,我迷失在缓冲区、窗口和选项卡中

每当我执行
:make
:grep
等操作时,当前窗口中就会跳出新的缓冲区。 标签也是如此。在某个时候,这开始变得非常混乱,因为我真的必须关注VIM中的内容


控制这种行为的一种行之有效的简单方法是什么?

作为一个长期使用vim的用户,我很难说出来,但是--也许是时候让您毕业成为一个成熟的IDE了。在大多数情况下,您仍然可以使用vim作为编辑器,但IDE将为您处理文件管理和导航,并且可能会简化make和grep工作流(例如,结构化搜索会使grep的工作变得轻松)。您使用的是哪种语言?

运行多个VIM。我在Linux机器上使用“konsole”。它允许我在一个窗口中打开许多选项卡式linux终端会话。我可以双击选项卡来命名它们,例如“模型”、“视图”、“控制器”等。在这些选项卡式linux终端中,我将运行一个vim进程,通常一次打开2到3个文件。 另一个选择是找到具有Vim模式的IDE,这样您仍然可以使用大多数关键命令。

我刚才为一位朋友测试了Eclim。基本上,它允许您在无头模式下运行Eclipse,同时使用vim进行编辑等等。有了这个扩展,它允许Vim利用这两个世界的所有优势,例如将Eclipse的项目树添加到您最喜欢的编辑器中

当时的安装有点让人望而生畏,但一旦我把它安装好并运行起来,它就非常顺利,是一个非常出色的解决方案。试试看,我相信你不会失望的。现在安装可能更容易了。:)

哦,我还应该提到有几个Eclim设置。您可以使用带有vim的headless Eclipse作为主要接口(正如我第一次提到的),您可以使用headless Eclipse和vim,这样您就可以轻松地来回切换(在同一个项目中),或者您可以将vim集成到Eclipse中。

  • 使用
    :hide
    删除所有窗口,除非您确实需要打开它们

  • 我不知道为什么标签会为您创建一个新窗口,
    CTRL+]
    应该重新使用当前窗口

  • nnoremap+4+
    nnoremap-4-
    以及标准的
    使调整窗口大小变得更加容易

  • 买一个22英寸的显示器(最小),使用
    :vsplit
    并排显示文件。我发现这比使用两个更小的显示器更重要

  • 使用
    L
    H
    等移动窗口。不要忘记
    :tab sp
    在新选项卡中打开当前文件(或新文件)

  • :map h
    :map l
    等使在窗口之间移动更加容易。
    :map:tabprev
    :map:tabnext
    使在选项卡之间移动更加容易

最后,如果您需要定期打开20个文件,这可能表明您的代码组织不良。如果可能,功能应该包含在单个文件中,那么您只需要一次专注于一个功能。

允许您组织选项卡、缓冲区、会话(工作区)+模糊搜索。
它非常适合在大型项目上工作。这就是我实际想出的方法。
之前,我使用了'jlanzarotta/bufexplorer.git'和'xolox/vim session'


您可以查看。

该项目包括几种语言,C++/C,(90%)、VHDL、TCL以及一些DSL。我远程工作,vim非常适合(但我也使用nomachine).几年前,我尝试了Eclipse、CodeBlocks和最近的XCode,但不久之后我又跳回到了vim。这看起来非常有趣,我肯定应该尝试一下。谢谢。不幸的是,这里没有什么我不知道的新内容。我想问题是我的项目非常庞大,而且只处理这么多文件和东西同时,这本身就是一个问题,而不是vim问题。