vim 在当前工作目录中创建临时文件
vim creates temporary files in the current working directory
我通常在我的 vimrc 中设置我的备份目录如下。
set backupdir=~/vimtmp,/tmp,.
set directory=~/vimtmp,/tmp,.
这是因为所有 *.*~
都进入了 vimtmp
文件夹。
但是,NERDTree, Tagbar
等某些插件会在我当前的工作目录中创建它们的临时文件。例如,启动这些插件时会创建以下文件。
[[buffergator-buffers]]
__Tagbar__
NERD_tree_3
这真是个恼人的问题,因为当我使用版本控制系统时,这些文件会在某些文件夹中创建,有时我会不小心将它们推送到中央仓库。
你能给我一些解决这个问题的建议吗?例如,我如何专门为插件设置当前工作目录,以便它们将使用该目录作为临时文件。
非常感谢。
查看我自己的 vimrc 文件后,我发现以下自动命令导致了问题。我使用此命令在创建文件时自动保存文件。然而,这个命令的副作用是它也保存了所有缓冲区(甚至 NERDTree、TagBar 等)。因此,它弄乱了我的工作目录。所以,通过禁用以下命令,我解决了这个问题。
" evil command
" autocmd BufNewFile * :write
我通常在我的 vimrc 中设置我的备份目录如下。
set backupdir=~/vimtmp,/tmp,.
set directory=~/vimtmp,/tmp,.
这是因为所有 *.*~
都进入了 vimtmp
文件夹。
但是,NERDTree, Tagbar
等某些插件会在我当前的工作目录中创建它们的临时文件。例如,启动这些插件时会创建以下文件。
[[buffergator-buffers]]
__Tagbar__
NERD_tree_3
这真是个恼人的问题,因为当我使用版本控制系统时,这些文件会在某些文件夹中创建,有时我会不小心将它们推送到中央仓库。
你能给我一些解决这个问题的建议吗?例如,我如何专门为插件设置当前工作目录,以便它们将使用该目录作为临时文件。
非常感谢。
查看我自己的 vimrc 文件后,我发现以下自动命令导致了问题。我使用此命令在创建文件时自动保存文件。然而,这个命令的副作用是它也保存了所有缓冲区(甚至 NERDTree、TagBar 等)。因此,它弄乱了我的工作目录。所以,通过禁用以下命令,我解决了这个问题。
" evil command
" autocmd BufNewFile * :write