如何避免从.bashrc和.inputrc中加载的某些行



我在.inputrc中有这些行:

"(": "C-v()ei"
"[": "C-v[]ei"
"{": "C-v{}ei"
""": "C-v"C-v"ei"
"'": "C-v'C-v'ei"

此终端中的引号和括号。但这会在TMUX会话中给您带来不便:当我向Frome One Pane(VIM)发送包含引号的文本(bash/python/r等)时,每个引用都会变成两个,非常烦人。

是否可以在(仅在)tmux中禁用这些行?

tmux设置了tmux环境变量,因此在.bashrc(或.profile或erthing):

if [ '' = "$TMUX" ] ; then
  echo not in TMUX
else
  echo in TMUX
fi

您可以将InputRC设置为覆盖默认的.inputrc位置,因此您可以拥有一个tmux One和一个非TMUX ONE,并根据TMUX导出.bashrc中的合适的InputRC值。您甚至可以基于" common"文件和"非tmux session"文件来调整该会话的合适.inputrc(例如/tmp)。

不幸的是,TMUX导出TMUX,因此从TMUX会话开始的子壳将具有TMUX集合。还没有找到一定的路。

我最终在〜/.bashrc:

中这样做
if [[ '' = "$TMUX" ]]
then
    set -o vi
    bind -m vi-insert '"(" "C-v()ei"'
    bind -m vi-insert '"[" "C-v[]ei"'
    bind -m vi-insert '"{" "C-v{}ei"'
    bind -m vi-insert '""" "C-v"C-v"ei"'
    bind -m vi-insert '"47" "C-v47C-v47ei"'
else
    echo Welcome to Tmux!
fi

更新

采用User3392484的建议,我发现这样做好得多:

if [[ '' = "$TMUX" ]]
then
    export INPUTRC=~/.inputrc
else
    export INPUTRC=~/.tmux.inputrc
    echo Welcome to Tmux!
fi

最新更新