在vim中禁用交换文件创build

有没有办法在VIM中禁用.swp文件创build? 或者至less在一个地方创build它们,以便我可以轻松地find并删除它们。

当我在编辑的同时复制父目录时,我发现他们特别讨厌。 当然我知道我可以使用find -exec来查找和删除它们。 但是我想要一个更实用的解决scheme。

尝试:set noswapfile ,或者在你的vimrc文件中没有“:”。 有关更多详细信息,请参阅交换文件上的Vim文档

在.vimrc或/ etc / vimrc中设置以下variables,使vim将swap,backup和undo文件放在一个特殊的位置,而不是正在编辑的文件的工作目录:

 set backupdir=~/.vim/backup// set directory=~/.vim/swap// set undodir=~/.vim/undo// 

在path中使用双尾斜杠告诉vim启用一个避免名称冲突的function。 例如,如果您在一个位置编辑文件,而在另一个位置编辑另一个文件,并且这两个文件具有相同的名称,则不希望在〜/ .vim / swap /中发生名称冲突。 如果你指定了〜/ .vim / swap //两个尾部的斜线,vim会使用正在编辑的文件的整个path来创build交换文件,以避免冲突(文件path中的斜杠将被百分号%所替代)。

例如,如果您编辑/path/one/foobar.txt和/path/two/foobar.txt,则会在〜/ .vim / swap /中看到两个名为%path%one%foobar.txt的交换文件和%path%two%foobar.txt。

我在这里find了答案:

 vim -n <file> 

打开没有交换文件的文件。

此外:

 set dir=/tmp 

.vimrc创build/tmp的交换文件。

这里是我个人的〜/ .vimrc备份设置

 " backup to ~/.tmp set backup set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp set backupskip=/tmp/*,/private/tmp/* set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp set writebackup 

我同意那些质疑为什么vim需要所有这些“灾难恢复”的东西,而没有其他的文本编辑人员对此感到困扰。 我不希望vim在编辑文件的目录时创build任何额外的文件,非常感谢。 为此,我在我的_vimrc中禁用了交换文件,并将烦人的“备份”文件移动到Temp目录:

 " Uncomment below to prevent 'tilde backup files' (eg. myfile.txt~) from being created "set nobackup " Uncomment below to cause 'tilde backup files' to be created in a different dir so as not to clutter up the current file's directory (probably a better idea than disabling them altogether) set backupdir=C:\Windows\Temp " Uncomment below to disable 'swap files' (eg. .myfile.txt.swp) from being created set noswapfile 

您可以将backupdir和directory设置为null,以便完全禁用交换文件,但通常build议将它们放在集中式目录中。 Vim负责确保没有名称混淆或类似的东西; 所以,这是一个完全安全的select:

 set backupdir=~/.vim/backup/ set directory=~/.vim/backup/ 

如果你把set directory=""放在你的exrc文件中,你将关掉交换文件。 但是,这样做会禁用恢复。

更多信息在这里 。

不要为特定文件创buildvim交换文件

 autocmd bufenter c:/aaa/Dropbox/TapNote/Todo.txt :set noswapfile 

如果您使用的是git ,则可以将*.swp添加到.gitignore

对于任何想要为Rails项目设置的人,添加

 set directory=tmp,/tmp 

进入你的

 ~/.vimrc 

所以.swp文件将会在自然的位置 – tmp目录(每个项目)。