我在Vim中打开了多个文件。当我想从一个文件切换到另一个文件时,除非我保存文件或退出,否则Vim不允许我切换。有没有办法可以在我想要切换时不必每次都保存?这是Vim的问题还是我的错误?如果这就是Vim的工作方式,有人能告诉我逻辑上的原因吗?
只需添加
set hidden
将以下内容添加到您的~/.vimrc
文件中。这使得可以同时打开多个未保存的文件。
在此过程中,您还应该添加以下行:
set switchbuf=useopen,usetab
它会强制Vim跳转到已经打开的缓冲区中,就在那里,位于另一个分割窗口、另一个标签页中,而不是“隐藏”当前缓冲区以替换目标缓冲区。这对于快速修复相关的跳转以及:sb
非常有用。
这两行代码是高效使用Vim缓冲区的关键。
:sb
、:sbn
或:sbp
命令一样高效地在缓冲区之间移动,而:b
、:bn
和:bp
命令则不关心此设置并替换当前缓冲区。因此,如果您使用窗口和选项卡,则应添加此行,但如果您只使用单个窗口,则不需要添加。 - romainl:n!
命令。这将跳转到下一个文件,忽略更改并不保存它们。:tabnew file.txt
打开一个新的标签页,并加载file.txt
。然后,你可以使用gt
和gT
在打开的标签页之间前进和后退。我发现这比处理缓冲区更容易,但我是一个相对较新的vim用户。:help windows
),这是 Vim 极其强大的功能。而且有许多插件可以使切换缓冲区更容易。我能想到的是 "ctrlp" 或 "buffet" 插件,但还有很多其他插件。 - Dmitry Frank
.vimrc
中加入:set hidden
应该会有帮助。 - Dmitry Frank