我已经随便使用 Vim 大约 3 年了(主要用于 git 提交消息(,最近开始专门使用它进行文本编辑和编码,同时我通过一系列中级教程和资源。直到几周前,我主要使用Vim,NeoVim或iVim(在iOS上(。
最近,我安装了MacVim,并开始在Mac上使用iTerm时专门使用它。我注意到.swp
文件的创建和管理方式存在一些差异。在我使用过的其他 Vim 版本中,只有当我同时在多个 Vim 实例中打开一个文件时,才会创建.swp
文件。似乎MacVim为每个打开的文件创建.swp
文件(我猜是出于备份/还原目的(。MacVim似乎也将.swp文件放入工作目录中。我不记得其他版本的 Vim 这样做了,但它最近导致我向我的全局 Git 忽略设置中添加了*.swp
。
在起草这个问题之前,我快速搜索了一下:vim macvim swp files
并找到了一个结果,它给了我一些关于如何解决我注意到的问题之一的想法:
Vim交换文件不删除
我还发现这篇文章给人的印象是涉及以下设置:
backup / nobackup
writebackup / nowritebackup
swapfile /noswapfile
但这并不能真正回答我的问题,即"有什么不同?我正在定期编辑我的.vimrc
,并希望添加适当的设置以默认在MacVim中获得相同的行为(同时也了解我正在添加的内容(。与交换文件相关的MacVim设置方式有何独特之处?上面提到的三个设置是否有特定的组合,或者是否涉及更多设置? 如何设置我在 Vim、NeoVim 和 iVim 中注意到的相同默认行为?
我已阅读 MacVim 常见问题解答和故障排除指南,但没有找到任何相关信息。
交换文件的默认位置由:help 'directory'
确定。给定默认值,Vim 将首先尝试为其创建交换文件的文件的目录,并附加.swp
扩展名。如果它无法在那里创建交换文件,它将尝试'directory'
中的下一个位置:
该文件:
_posts/2018-07-31-npm-201.markdown
交换文件:
_posts/2018-07-31-npm-201.markdown.swp
如果您尝试编辑的文件已经存在交换文件,并且您决定仍然对其进行编辑,则会在同一位置创建另一个交换文件,扩展名不同:.swo
、.swn
等。
我上面描述的是正常的、预期的行为。这就是MacVim的工作方式。
在我使用过的其他 Vim 版本中,只有当我同时在多个 Vim 实例中打开一个文件时,才会创建
.swp
文件。
这些"Vim版本"是:
- 破碎
- 奇怪的配置,
- 不是维姆。
似乎MacVim为每个打开的文件创建
.swp
文件(我猜是出于备份/还原目的(。
你猜对了,是的,这是每个 Vim 的预期行为。
MacVim似乎还将
.swp
文件放入工作目录中。
如果文件在工作目录中,这是正常的。如果不是,则工作目录可能是'directory'
的一部分。如果不是,则您发现了一个错误。
我不记得其他版本的 Vim 这样做过,但它最近导致我在我的全局 Git 忽略设置中添加了
*.swp
。
在那里有一个 Vim 部分是很常见的。