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

sic*_*a07 59 vim swapfile

我正在远程服务器上的一个项目上工作.我不想在服务器上有交换文件.我想将Vim的所有交换文件(当然还有gVim)保存在指定的目录中.我怎么能这样做?

mae*_*ics 69

您可以将directory选项设置为您希望vim存储其交换文件的位置,例如:

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

" $HOME/.vimrc
:set directory=$HOME/.vim/swapfiles//
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这假设您已经设置了您的 HOME 目录: set HOME=~/ "或您喜欢的任何位置 如果您没有这样做,请使用: set directory=~/.vim/swapfiles// "确保该目录存在 (3认同)

Ben*_*enj 28

您可能还需要考虑设置backupdir选项:

set backupdir=Z:\backups
Run Code Online (Sandbox Code Playgroud)

这使得vim存储备份在特定位置而不是在当前目录中.

  • @trusktr为了避免这个问题,你可以这样做:: set dir => D:\ data\vimdata\vswaps //路径末尾的双斜杠导致Vim确保swaps目录中的文件始终是唯一的.显然,这个例子来自windows环境,但我相信这同样适用于其他平台. (6认同)
  • 如果您编辑具有两个不同位置的完全相同名称的两个文件,该怎么办?Z:\ backups会有冲突吗? (3认同)