[英]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 自動設置,因為set -g default-shell /home/kossak/.local/bin/xonsh
在我的.tmux.conf
中。 我想手動將$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
交換環境變量,但你可以讓xonsh
很容易地做到這一點,例如
with ${...}.swap({"SHELL": "/bin/bash"}):
vim
將打開vim
並將您的環境更改為設置$SHELL=/bin/bash
但僅適用於上下文管理器的主體。
您可以在xonshrc
其設置為vim
的別名
def _vim():
with ${...}.swap({"SHELL": "/bin/bash"}):
vim
aliases["vim"] = _vim
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.