stty命令在bash dotfiles中的位置是什么? .bash_profile中?

时间:2013-01-15 23:40:06

标签: bash .bash-profile stty

我正在尝试确保流量控制,xon-xoff,Control-S Control-Q功能 在我的所有终端/ shell / tmux中关闭(这样我就可以 可靠地使用Control-S做其他事情) 它应该在X,urxvt,tmux,控制台,ssh,...无处不在。

配置应该在哪个dotfile中?它应该是什么? 我最好的猜测:

# check xon/xoff settings
# stty -a | egrep -o -- '-?\<(ix\w*|start|stop)'

if [ -t 0 ]; then # term test?
    # Turn off TTY "start" and "stop" commands in all interactive shells.
    # They default to C-q and C-s, Bash uses C-s to do a forward history search.
    stty start ''
    stty stop  ''
    stty -ixon # disable XON/XOFF flow control
    stty ixoff # enable sending (to app) of start/stop characters
    stty ixany # let any character restart output, not only start character
fi

我在我的机器上找到的示例使用.bash_profile,但是 似乎没有捕获我的非登录shell。另一方面, 把stty调用放入.bashrc假定有一个终端, 我应该只测试终端(如果[-t o])或检查$ PS1?

也许有更好的方法来配置我的终端而不是“stty”? 也许我应该让所有bash实例登录shell?

stty是我想避免的那些神秘的奥秘之一。

1 个答案:

答案 0 :(得分:4)

使用 Control-S 等只在交互式shell中才有意义。所以,我会把它放到.bashrc中,并确保测试shell是否真的interactive