如何防止syntastic为每个vim实例创建目录?

如何防止syntastic为每个vim实例创建目录?,vim,syntastic,Vim,Syntastic,将syntastic插件与vim一起使用时,每次打开新的vim实例时,我都会看到一个新的/tmp/vXXXXXXX目录。当syntastic插件被禁用时,不会创建这样的目录 当我运行inotify时,我发现每次保存文件时都会在该目录中创建一个数字文件。可以让syntastic(或vim)根据需要创建临时目录吗?如果做不到这一点,我可以让它使用单个目录吗?例如,/tmp/vim-syntastic/vXXXXXXX/?如果您查看syntastic帮助文件,您将看到syntastic使用“tail”

将syntastic插件与vim一起使用时,每次打开新的vim实例时,我都会看到一个新的
/tmp/vXXXXXXX
目录。当syntastic插件被禁用时,不会创建这样的目录


当我运行inotify时,我发现每次保存文件时都会在该目录中创建一个数字文件。可以让syntastic(或vim)根据需要创建临时目录吗?如果做不到这一点,我可以让它使用单个目录吗?例如,
/tmp/vim-syntastic/vXXXXXXX/

如果您查看syntastic帮助文件,您将看到syntastic使用“tail”文件存储给定make程序的输出。通过将以下内容添加到vimrc,可以覆盖给定文件类型和子检查程序的默认尾部:

let g:syntastic_<filetype>_<subchecker>_tail = "> /tmp/vim-syntastic/your-file-here"
有关更多信息,请参见
:help syntastic config makeprg
。不幸的是,据我所知,没有内置的方法为所有syntastic输出设置默认目录

编辑:Lekenstein找到了另一个解决方案,他在链接的Github问题上发布了这个解决方案

let $TMPDIR = '/tmp/vim-' . $USER
silent! call mkdir($TMPDIR, '', 0700)

这将为所有vim相关的临时文件创建一个特殊目录。这意味着它还将影响与syntastic无关的临时文件。

如果您查看syntastic帮助文件,您将看到syntastic使用“tail”文件存储给定make程序的输出。通过将以下内容添加到vimrc,可以覆盖给定文件类型和子检查程序的默认尾部:

let g:syntastic_<filetype>_<subchecker>_tail = "> /tmp/vim-syntastic/your-file-here"
有关更多信息,请参见
:help syntastic config makeprg
。不幸的是,据我所知,没有内置的方法为所有syntastic输出设置默认目录

编辑:Lekenstein找到了另一个解决方案,他在链接的Github问题上发布了这个解决方案

let $TMPDIR = '/tmp/vim-' . $USER
silent! call mkdir($TMPDIR, '', 0700)
这将为所有vim相关的临时文件创建一个特殊目录。这意味着它也会影响与syntastic无关的临时文件。

,syntastic不会自行创建临时目录,而这是由vim处理的。再进一步看,我发现
vim
使用
$TMPDIR
设置临时目录。如果目录是不可写的,那么它将被忽略

因此,作为解决方案,以下几行将临时目录设置为
/tmp/vim USERNAME
,然后创建它(忽略目录存在时通常发生的错误):

现在,我不再有很多
/tmp/vxxx/
目录了。相反,它们出现在
/tmp/vim-peter/vxxxxx/
中,这很好。

,syntastic不会自行创建临时目录,而临时目录是由vim处理的。再进一步看,我发现
vim
使用
$TMPDIR
设置临时目录。如果目录是不可写的,那么它将被忽略

因此,作为解决方案,以下几行将临时目录设置为
/tmp/vim USERNAME
,然后创建它(忽略目录存在时通常发生的错误):


现在,我不再有很多
/tmp/vxxx/
目录了。相反,它们出现在
/tmp/vim-peter/vxxxxx/
中,这很好。

你问过Syntastic的问题追踪器吗?@Romaill我问过了,你问过Syntastic的问题追踪器吗?@Romaill我问过了,即使我没有保存任何东西,目录也会被创建。该文件甚至没有文件格式。例如,
vim/dev/null
。tail选项在这里似乎不适用。即使我不保存任何内容,也会创建dir。该文件甚至没有文件格式。例如,
vim/dev/null
。tail选项在这里似乎不适用。这解决了我的问题,也为我的Windows GVim安装提供了一个很好的解决方法。深入研究
syntastic.vim
,我发现它正在检查
$TEMP
$TMP
,它们可以用类似的方式定义。这解决了我的问题,也为我的Windows GVim安装提供了一个很好的解决方法。深入研究
syntastic.vim
,我发现它正在检查
$TEMP
$TMP
,它们可以用类似的方式定义。