Vim错误:运行某些命令时无法打开文件/tmp/.*需要临时文件

Yan*_*Liu 6 vim

Gentoo,vim版本7.3.762

问题:
在vim实例运行了很长时间(例如2小时)时才发生.然后我运行了一些需要临时文件的命令,比如:Gstatus插件fugitive,我会收到一个错误:

can't open file /tmp/RANDOM_NAME
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚造成这种情况的原因.它与操作系统的自动清理策略有什么关系吗?
因为我不仅在运行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
Run Code Online (Sandbox Code Playgroud)

小智 12

我遇到了这个问题,因为我最近将shell更改fishbash.在我vimrc修复问题时更改我的shell :

set shell=/bin/bash

  • 没想到这也适用于 Windows,但确实如此!谢谢 :) (2认同)