2009-10-28 144 views
46

我正在远程服务器上的项目中工作。我不想在服务器上有交换文件。我希望将Vim的所有交换文件(当然还有gVim)保存在指定的目录中。我怎么能这样做?如何更改Vim中swp文件的文件夹路径

+0

这是[链接](http://stackoverflow.com/a/43286164/30038)如何在Windows中执行此操作。 – 2017-04-07 19:59:43

回答

23

你可能要考虑设置BACKUPDIR选项,以及:

set backupdir=Z:\backups 

这使得Vim存储备份在一个特定的位置,而不是在当前目录中。

+0

谢谢。我也不知道这一点。 – sica07 2009-10-29 09:02:57

+2

如果您在两个不同的位置编辑两个完全相同名称的文件,该怎么办? Z:\备份中会有冲突吗? – trusktr 2013-03-09 21:12:42

+4

@trusktr为了避免这个问题,你可以这样做::set dir => D:\ data \ vimdata \ vswaps //其中在路径末尾的双斜杠导致Vim确保交换目录中的文件始终是唯一的。显然,这个例子来自Windows环境,但我相信其他平台也是如此。 – glaucon 2013-08-29 00:28:19

49

您可以设置directory选项,你想Vim存储其交换文件的位置,例如:

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

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

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

+1

这个假设你已经设置了你的HOME dir: set HOME =〜/“或者你喜欢的任何位置 如果你没有这样做,请使用: set directory =〜/ .vim/swapfiles //”目录存在 – Richard 2016-02-07 09:00:17

+1

如何在运行Windows 10的PC上实现同样的功能?路径如何不同? – Casey 2017-03-07 02:08:02

+0

我必须在工作之前创建.vim/swapfiles – vpzomtrrfrt 2017-11-15 21:36:10