Project | Files -------------------------- Thesis 20 Simulator 50 Plots 30 Graphs 30 Website 500+
将所有这些文件放在一个窗口中是很麻烦的.有几种选择,我会讨论他们的画布,或者我敢说他们的阿喀琉斯之踵.
>拆分Windows我可以将vim分成5个窗口,每个项目一个,但我也可以通过针孔编码.我实际上从来不是分裂窗口的粉丝,除了你经常比较和编辑两个相关文件的情况.此外,我发现两个维度的导航无法像水平方向那样无缝导航.
>选项卡选项卡,或者更确切地说是视图选项,愚蠢地称为选项卡,似乎完全适用于此类问题,但它们不提供对缓冲区的限制.例如,如果我在论文选项卡中,我只想导航那20个缓冲区,而不是所有500个网站相关的缓冲区.由于我将这些保存为会话,如果我不小心切换到我的论文选项卡中的网站缓冲区,退出,然后在进入时我可能会导致问题,我有两个网站选项卡.这还有问题,因为我为每个选项卡设置了本地目录(:lcd).
>终端选项卡使用终端选项卡可确保每个选项卡中的缓冲区保持独立.但是,每个vim会话都不能再共享信息.我不能把文字从一个终端拉到另一个终端(我想我可以进入寄存器).我也不能再使用:buffdo在所有缓冲区上.此外,我喜欢这样一个事实,即我可以将所有vim选项卡保存到单个会话中.
我知道这对公众讨论是一种诅咒,所以我会问,是否有办法实现我正在努力的功能.
编辑总结我需要的一个好方法是说我想要“子缓冲区”.
编辑我想从vim的标签中获取的是能够更有效地使用它们的功能:视口.我希望能够为我的论文部分专门设置一个标签.在本节中,我将更改本地目录以反映它.此外,我想过滤掉该表中的缓冲区,使其只是所有缓冲区的子集.类似地,在模拟器选项卡中,我想将它专门用于我的模拟器文件.
基本上我想要的是通过制表符运行vim的多个独立会话的能力,但仍然有一些额外的额外津贴(即共享寄存器能够猛拉)
>全局寄存器为了模拟使用全局寄存器,以便能够在vim的不同实例之间复制粘贴,通过将行set clipboard = unnamedplus添加到.vimrc文件中,将系统剪贴板和未命名的寄存器“管道”在一起.这具有将所有yank / delete …操作复制到系统剪贴板的效果.从那里,vim的其他实例将可以访问它.同样,任何粘贴你在vim之外做的副本现在都将存储在未命名的寄存器中.
> Gnome终端选项卡快捷方式转到下一个和上一个选项卡的默认快捷方式是Ctrl Pg Up和Ctrl Pg Dn.由于我使用Shift k和Shift j作为我的下一个和前一个缓冲区,我将Ctrl k和Ctrl j映射到我的下一个和上一个选项卡.只需前往Gnome Terminal>编辑>键盘快捷键
> Gnome Terminal选项卡编写shell脚本以将每个vim实例作为新的终端选项卡启动. See here for instructions
> Vim实例最后,为每个vim实例保存一个会话文件:mksession fileName
它并不完美(例如,命名寄存器不能跨终端复制)但在我看来,它更能代表视口(这里称为’tabs’)应该做什么.
编辑我实际上已经回到使用vim标签.我学习了vim脚本,并映射了我的键,因此ShiftJ和ShiftK映射到上一个/下一个缓冲区,CtrlJ和CtrlK映射到上一个/下一个选项卡.然后我下载了tabname脚本,这样我就可以设置有意义的选项卡名称,然后修改vim会话的制作以保存选项卡名称(见here),然后从gVim切换回Vim,这样我就可以使用全屏模式了.这是一段漫长艰苦的旅程,但我认为这是值得的.