![在新窗口中打开新的 vim 缓冲区?](https://linux22.com/image/1347827/%E5%9C%A8%E6%96%B0%E7%AA%97%E5%8F%A3%E4%B8%AD%E6%89%93%E5%BC%80%E6%96%B0%E7%9A%84%20vim%20%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%9F.png)
我喜欢 vim,但不喜欢它的缓冲区。每当您通常在新缓冲区中打开文件时,是否有任何方法可以启动单独的 gvim?我可能可以使用:edit
其他启动命令的别名,但这是正确的方法吗?
答案1
GVim 不支持多个“顶层”窗口(参见使用带有多个 GUI 窗口的 Vim/Gvim)。但是你可以通过创建一个启动新 gVim 进程的用户命令来解决这个问题。像这样:
:command -nargs=* -complete=file 新 :call system('gvim ' . shellescape(<f-args>))
此命令可能会因“有创意”的文件名而以有趣的方式失败。我试图让它变得强大而不复杂,但我还没有对其进行广泛的测试。
坚持以这种方式使用 Vim 有很多缺点。您可能不喜欢 Vim 的缓冲区处理,但如果您可以学会使用它,它会非常有用。
答案2
对我来说,窗口分割以及在它们之间快速切换、拖拽和粘贴的能力对于有效使用 Vim 至关重要。当然,您可以开发自己独特的工作流程,但我不建议这样做。相反,请尽一切努力遵循大量 Vi(m) 用户发现非常有用的方法。尽管有时学习难度很大,但了解文件、缓冲区、窗口和标签页之间的区别很重要。
作为一种折衷方案,您可以尝试在标签页中打开新文件(即使用:tabedit
而不是:edit
),而不是启动完整的独立 Vim 实例。感觉就像在 Web 浏览器中一样,而且您可以保留共享寄存器和标记的好处。
答案3
“缓冲区方式”有许多好处:例如,您使用的所有缓冲区都共享寄存器,或者一个窗口中定义的全局映射或选项可用于所有其他窗口,或者您可以在没有窗口管理器的情况下进行复制/粘贴和多个寄存器,或者您可以在 Ex 命令中引用其他缓冲区的部分内容……
无论如何,您可能可以做类似的事情:!gvim filename
。但是,由于没有合理列出此方法的优点和“缓冲方式”的缺点,所以这样做真的毫无意义。