当 SHELL 设置为 xonsh 时如何修复 vim 抛出错误?
How to fix vim throwing error when SHELL is set to xonsh?
当我开始 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
的值未更改)。
只需告诉 vim 更喜欢 bash,以使您的 vim 保持一致。
if executable('bash')
set shell=bash
endif
你不能让 tmux
交换 env-vars,但你可以让 xonsh
很容易做到,例如
with ${...}.swap({"SHELL": "/bin/bash"}):
vim
将打开 vim
并且您的环境突变为设置 $SHELL=/bin/bash
但仅适用于上下文管理器的主体。
您可以在 xonshrc
中将其设置为 vim
的别名
def _vim():
with ${...}.swap({"SHELL": "/bin/bash"}):
vim
aliases["vim"] = _vim
当我开始 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
的值未更改)。
只需告诉 vim 更喜欢 bash,以使您的 vim 保持一致。
if executable('bash')
set shell=bash
endif
你不能让 tmux
交换 env-vars,但你可以让 xonsh
很容易做到,例如
with ${...}.swap({"SHELL": "/bin/bash"}):
vim
将打开 vim
并且您的环境突变为设置 $SHELL=/bin/bash
但仅适用于上下文管理器的主体。
您可以在 xonshrc
vim
的别名
def _vim():
with ${...}.swap({"SHELL": "/bin/bash"}):
vim
aliases["vim"] = _vim