Vim 的永久固定的类似 IDE 的布局

nor*_*itt 0 ide vim layout

我刚刚开始使用 gVim,我正在努力建立一个工作基础来提高工作效率。

我已经完成了基本配置并安装了一些插件:

  • 剪辑伴侣
  • MiniBufExpl
  • 标签列表
  • 环绕
  • 乳胶漆

我已经阅读了关于如何在 vim 中执行基本操作的教程“vimtutor”,以及有关 netrw 的一些基础知识。我现在想要实现的是让 Vim 表现得像一个 IDE。因此,一旦我打开 vim,我想自动获得这样的特定屏幕设置:

+-----------------------------------------------------------+
|                      MiniBufExpl                          |
| [1: Tab1][2: Tab2][3: Tab3]...                            |
+-----------------------------------------------------------+
| NetRw |         File contents as tabs           | TagList |
|       |                                         |         |
|       |                                         |         |
   ...                     ...                        ...   
|       |                                         |         |
+-----------------------------------------------------------+
|                  Compiler/Debug messages                  |
|                                                           |
+-----------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我目前的问题是:

  1. 一旦设置了这样的布局,我如何让 Vim 记住它?(我还不擅长编写 Vim 脚本,每次使用“split”命令手动设置布局有点不方便)。

  2. 无论我使用 ":open" 命令、netrw 还是任何其他方式打开文件,如何才能始终在布局的中心区域打开文件?

如果有充分的理由,我可能会考虑使用 NerdTree 而不是 Netrw。我决定尝试坚持使用 Netrw 的原因是,不依赖太多插件会很好,所以我学会了在具有基本 Vim 安装的系统上流畅地工作。

rom*_*inl 5

你可能会让 Vim看起来像一个 IDE(如果你眯得够久的话),但你永远不会把它变成一个 IDE。Vim 是一个文本编辑器,它有自己的哲学:拥抱它,你会得到很多好处,忽略它……你不会。

反正…

  • NERDTree 比 Netrw 更接近您的标准文件浏览器面板:如果您确实需要始终打开文件浏览器面板,NERDTree 是您唯一现实的选择。但是,这些工具实际上毫无价值(它们很少使用以证明浪费的空间是合理的),因此您可能应该探索其他方法。当您想使用“始终开启”的 NERDTree 和最常见的 netrw 用法打开另一个文件时,您必须这样做:

    NERDTree                         Netrw
    
    switch to the NERDTree window    open netrw
    navigate to/search for the file  navigate to/search for the file
    hit a key to open the file       hit a key to open the file
    
    Run Code Online (Sandbox Code Playgroud)

    基本上,对于相同的结果,您有相同的工作量,但 netrw 方式不会浪费屏幕上的单个单元格。请注意,您也可以以这种方式使用 NERDTree。

    显然,同样的原则也适用于 MiniBufExplorer。

  • Vim 中的标签根本不像其他编辑器中的标签那样工作,你不能强迫它们这样做。文档被加载到缓冲区中,这就是您想要操作的内容,而不是选项卡,至少在您了解差异之前是这样。见:help usr_07.txt,:help tabpage:help buffers

  • 您也不需要快速修复窗口“始终打开”:请参阅:help quickfix.

回答你的两个问题:

  1. 您可以使用该:mksession命令保存布局,您可以使用:help :mksession.

  2. 你不能没有很多努力和自我控制。如果您使用 NERDTree,则必须一直使用 NERDTree。并且:open不会做你认为它会做的事情。

在 Vim 中,最有效的布局很可能是

+------------------+
| the current      |
| buffer           |
|                  |
|                  |
+------------------+
Run Code Online (Sandbox Code Playgroud)