我在会话中运行 Vim screen
。当该会话终止时,它会终止其中运行的进程,导致 Vim 留下文件。如果文件包含允许我恢复未保存编辑的信息,.swp
这是一件好事,但在大多数情况下,我退出时所有内容都处于干净的保存状态 ( )。这使得文件很烦人,因为它们不包含任何有用的信息,但在重新打开时仍会导致恢复提示。.swp
screen
:wa
.swp
.swp
我可以让 Vim 仅在有未保存的更改时维护文件吗?
答案1
交换文件
简短的回答是不。使用 Vim,在编辑缓冲区时交换文件始终保持打开状态。每次对交换文件进行更改时打开它然后关闭它可能会大大降低编辑速度(输入 200 个字符后或四秒钟内未输入任何内容时,交换文件会更新)。
如果您不想将交换文件用于某个缓冲区或某些缓冲区,您可以暂时取消设置该swapfile
选项:
set noswapfile
要打开一个新缓冲区而不使用交换文件,可以使用:noswapfile
修饰符,例如,
:noswapfile edit ~/.bashrc
会议
从您的使用情况来看,Vim 会话似乎对您有好处。编辑完成后,运行mksession
以将会话保存在Session.vim
当前目录中名为 Vim 的脚本文件中。然后键入xa
以写入并退出所有文件。下次运行 Vim 时,请使用以下命令在同一工作目录中启动它
vim -S Session.vim
或者,如果你已经启动了 Vim,你可以使用以下方式获取会话脚本
:source Session.vim
请参阅help Session
以了解有关此有用功能的更多信息。
顺便说一句,关于屏幕,我假设您只是关闭屏幕会话(而不是将其分离),因为计算机正在关闭或重新启动。