簡體   English   中英

當 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 自動設置,因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM