禁止在vim中创建交换文件

有没有办法禁用在vim中创建.swp文件?或者至少把它们都创建在一个地方,这样我就可以很容易地找到和删除它们。

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

125214 次浏览

如果你把set directory=""放在你的exrc文件中,你将关闭交换文件。但是,这样做将使恢复失效。

更多信息在这里

这是我个人的~/。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中禁用交换文件,输入

:set noswapfile

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

set noswapfile

有关更多详细信息,请参阅交换文件上的Vim文档

我找到答案在这里:

vim -n <file>

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

此外:

set dir=/tmp

in .vimrc创建/tmp中的交换文件。

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

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

我同意那些质疑为什么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

在.vimrc或/etc/vimrc中设置以下变量,使vim将交换、备份和撤消文件放在一个特殊的位置,而不是正在编辑的文件的工作目录:

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

在路径中使用双斜杠告诉vim启用一个避免名称冲突的特性。例如,如果您在一个位置编辑一个文件,在另一个位置编辑另一个文件,并且两个文件具有相同的名称,那么您不希望在~/.vim/swap/中发生名称冲突。如果指定~/。Vim将使用正在编辑的文件的整个路径创建交换文件,以避免冲突(文件路径中的斜杠将被百分比符号%取代)。

例如,如果你编辑/path/one/foobar.txt和/path/two/foobar.txt,那么你会在~/中看到两个交换文件。Vim /swap/,分别命名为%path%one%foobar.txt和%path%two%foobar.txt。

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

set directory=tmp,/tmp

到你的

~/.vimrc

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

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

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

如果你正在使用git,你可以将*.swp添加到.gitignore