我在.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-v 47C-v 47ei"'
else
echo Welcome to Tmux!
fi
更新
采用User3392484的建议,我发现这样做好得多:
if [[ '' = "$TMUX" ]]
then
export INPUTRC=~/.inputrc
else
export INPUTRC=~/.tmux.inputrc
echo Welcome to Tmux!
fi