如何修复当SHELL设置为xonsh时vim抛出错误?

qoefvg9y  于 2022-11-11  发布在  Shell
关注(0)|答案(2)|浏览(118)

当我启动Vim时,我得到:

Error detected while processing /home/kossak/.vimrc:
line    1: E484: Can't open file /tmp/vdf7WFR/0
Press ENTER or type command to continue

我在~/.vimrc中的第一行是let s:uname = system("uname -s")
发生错误的原因是SHELL env var被设置为/home/kossak/.local/bin/xonsh。它是由tmux自动设置的,因为我的.tmux.conf中有set -g default-shell /home/kossak/.local/bin/xonsh。我想手动将$SHELL设置为/bin/bash,而不更改tmux的default-shell。可以吗?
我知道我可以在CLI中运行tmux setenv -g SHELL '/bin/bash',然后新的窗格将有新的值,但如何在.tmux.conf中做到这一点,以便tmux为我自动完成?
我尝试将setenv -g SHELL '/bin/bash'添加到.tmux.conf,但不起作用($SHELL的值未更改)。

yrdbyhpb

yrdbyhpb1#

只要告诉Vim更喜欢bash,让你的Vim保持一致。

if executable('bash')
   set shell=bash
endif
r8xiu3jd

r8xiu3jd2#

你不能让tmux交换环境变量,但是你可以让xonsh很容易地做到这一点,例如。

with ${...}.swap({"SHELL": "/bin/bash"}):
    vim

将打开vim,并将您的环境更改为设置$SHELL=/bin/bash,但仅针对上下文管理器的主体。
您可以在xonshrc中将其设置为vim的别名

def _vim():
    with ${...}.swap({"SHELL": "/bin/bash"}):
        vim

aliases["vim"] = _vim

相关问题