在vim中禁用交换文件创建

时间:2009-05-04 20:28:23

标签: vim editor

有没有办法在vim中禁用.swp文件创建?或至少在一个地方创建它们,这样我就可以轻松找到并删除它们。

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

10 个答案:

答案 0 :(得分:241)

要从vim中禁用交换文件,请键入

:set noswapfile

要永久禁用交换文件,请将以下内容添加到~/.vimrc文件

set noswapfile

有关详细信息,请参阅Vim docs on swapfile

答案 1 :(得分:149)

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

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

在路径中使用双尾斜杠告诉vim启用一个避免名称冲突的功能。例如,如果您在一个位置编辑文件而在另一个位置编辑另一个文件,并且两个文件具有相同的名称,则不希望在〜/ .vim / swap /中发生名称冲突。如果使用两个尾部斜杠指定〜/ .vim / swap //,vim将使用正在编辑的文件的整个路径创建交换文件以避免冲突(文件路径中的斜杠将替换为百分号%)。

例如,如果您编辑/path/one/foobar.txt和/path/two/foobar.txt,那么您将在〜/ .vim / swap /中看到两个名为%path%one%的交换文件foob​​ar.txt和%path%分别为%foobar.txt。

答案 2 :(得分:37)

我找到了答案here

vim -n <file>

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

另外:

set dir=/tmp
.vimrc中的

/tmp中创建了交换文件。

答案 3 :(得分:27)

这是我个人的〜/ .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

答案 4 :(得分:13)

我同意那些质疑为什么vim需要所有这些“灾难恢复”的东西,而没有其他文本编辑为此烦恼。我不希望vim在编辑时在编辑的文件目录中创建任何额外的文件,非常感谢。为此,我在_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

答案 5 :(得分:6)

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

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

答案 6 :(得分:3)

如果您将set directory=""放入exrc文件中,则会关闭交换文件。但是,这样做会禁用恢复。

更多信息here

答案 7 :(得分:3)

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

答案 8 :(得分:2)

不为特定文件创建任何vim交换文件

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

答案 9 :(得分:1)

对于任何试图为Rails项目设置此项的人,请添加

set directory=tmp,/tmp

进入你的

~/.vimrc

因此.swp文件将位于其自然位置 - tmp目录(每个项目)。