在使用带有vim的同步插件时,每次打开新的vim实例时,我都会看到一个新的/tmp/vXXXXXXX目录。当同步插件被禁用时,不会创建这样的目录。
当我运行inotify时,我发现每次保存文件时都会在该目录中创建一个数字文件。是否可以根据需要创建一个临时目录?如果失败了,我可以让它使用一个目录代替吗?例如,/tmp/vim-syntastic/vXXXXXXX/
发布于 2014-03-21 10:00:36
据开发商说不创建临时目录,这是由vim处理的。再看一看,我发现vim使用$TMPDIR来设置临时目录。如果该目录不可写,则会忽略它。
因此,作为解决方案,下面的行将临时目录设置为/tmp/vim-USERNAME,然后创建它(忽略通常在目录存在时发生的错误):
" Keep all vim-related temp files in a single directory
let $TMPDIR = '/tmp/vim-' . $USER
silent! call mkdir($TMPDIR, '', 0700)现在,我已经没有很多/tmp/vXXXXXX/目录了。相反,它们出现在/tmp/vim-peter/vXXXXXX/中,这是很棒的。
发布于 2014-03-20 18:09:35
如果您查看语法帮助文件,您将看到syntastic使用了一个“tail”文件来存储给定make程序的输出。可以通过在vimrc中添加以下内容来覆盖给定文件类型和子检查器的默认尾:
let g:syntastic_<filetype>_<subchecker>_tail = "> /tmp/vim-syntastic/your-file-here"因此,例如,如果您希望mri输出到/tmp/vim-syntastic/ruby-mri,您可以编写:
let g:syntastic_ruby_mri_tail = "> /tmp/vim-syntastic/ruby-mri"有关更多信息,请参见:help syntastic-config-makeprg。这里有一个关于git的直接链接。据我所知,不幸的是,没有为所有语法输出设置默认目录的内置方式。
编辑: Lekenstein找到了另一个解决方案,他在链接的Github问题上发布了这一解决方案。
let $TMPDIR = '/tmp/vim-' . $USER
silent! call mkdir($TMPDIR, '', 0700)这将为所有与vim相关的临时文件创建一个特殊的目录。这意味着它还将影响与语法无关的临时文件。
https://stackoverflow.com/questions/22534048
复制相似问题