![](/img/trans.png)
[英]Error when generating a spell file in Vim: E484: Can't open file/tmp/tr.utf-8.spl
[英]Vim error: can't open file /tmp/.* when run some commands need temporary files
Gentoo,vim版本7.3.762
问题:
只有当vim实例运行了很长时间(比如2小时)时才会发生。 然后我运行了一些需要临时文件的命令:Gstatus
插件fugitive
:Gstatus
,我会收到错误:
can't open file /tmp/RANDOM_NAME
我无法弄清楚造成这种情况的原因。 它与操作系统的自动清理策略有什么关系吗?
因为我不仅在运行fugitive
命令时遇到了这个问题,而且还遇到了以下函数:
" Use ranger as vim's file chooser
fun! RangerChooser()
silent !ranger --choosefile=/tmp/chosenfile $([ -z '%' ] && echo -n . || dirname %)
if filereadable('/tmp/chosenfile')
exec 'edit ' . system('cat /tmp/chosenfile')
call system('rm /tmp/chosenfile')
endif
redraw!
endfun
我遇到了这个问题因为我最近把我的贝壳从fish
变成了bash
。 在我的vimrc
更改我的shell修复了问题:
set shell=/bin/bash
我知道fugutive插件使用tempname()内部vim函数。 此函数返回Unix样式系统上/ tmp目录中唯一文件名的文件路径。 如果目录不再存在,则会发生此错误。 我不确定这是你遇到的情况,但它是要检查的东西。
如果键入:echo isdirectory(fnamemodify(tempname(), ":p:h"))
并返回0,请查看:call mkdir(fnamemodify(tempname(), ":p:h"))
导致问题走开。
我知道这是一个老线程。 仍然发布,以防它有助于某人。
我最近在我的系统上遇到了这个错误。 文件名的格式为“/ tmp //结果,在我启动了我的vim实例后,/ tmp /目录已被清理,该实例已连续运行了几天。
一个快速的mkdir /tmp/<random-dir-name>
修复了这个问题而无需重新启动vim。
将其添加到您的vimrc文件中,并在您的home foler中创建文件夹.tmp
let $TMPDIR = $HOME."/tmp"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.