如何在Vim中更改swp文件的文件夹路径

80

我正在远程服务器上进行一个项目,不想在服务器上保留交换文件。我希望所有Vim(当然还有gVim)的交换文件都保存在指定目录中。该怎么做?


1
这里有一个关于如何在Windows中实现它的链接 - Vlad Bezden
推荐您查看以下答案:https://vi.stackexchange.com/questions/11879/how-can-put-vimrc-and-viminfo-into-vim-directory/20067#20067 - DrBeco
2个回答

101

您可以设置directory选项来指定vim存储其交换文件的位置,例如:

 mkdir -p $HOME/.vim/swapfiles  # this dir must exist vi does not create it

" $HOME/.vimrc
:set directory=$HOME/.vim/swapfiles//

我使用尾随双路径分隔符,因为根据帮助文档:

对于Unix和Win32,如果目录以两个路径分隔符“//”或“\\”结尾,则交换文件名将基于文件的完整路径构建,并将所有路径分隔符替换为百分号“%”符号。 这将确保在保留目录中文件名唯一。


3
这假设你已经设置了你的HOME目录,方法是: set HOME=/ "或者你喜欢的任何位置 如果你没有这样做,请使用下面的命令: set directory=/.vim/swapfiles// "确保该目录存在 - Richard
1
我如何在运行Windows 10的PC上实现相同的事情?路径会有什么不同? - currenthandle

39

你也许需要考虑设置 backupdir 选项:

set backupdir=Z:\backups

这会让vim将备份存储在特定位置而不是当前目录中。


4
如果您编辑了名称完全相同但位于不同位置的两个文件,那么在Z:\ backups中会发生冲突吗?请注意,我将尽最大努力使翻译准确、通顺。 - trusktr
10
为了避免这个问题,你可以这样做:输入命令:set dir=>D:\data\vimdata\vswaps//。在路径结尾处添加双斜杠会使Vim确保交换目录中的文件始终是唯一的。这个例子显然来自Windows环境,但我相信在其他平台上也适用。 - glaucon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接