私はしばらくこれを台無しにし、正しく動作しないようです。端末で+を使用すると、組み合わせがCtrl正しく出力されるため、認識が可能でなければなりません。V^\
EmacsのストップフレームにCtrl+をバインドしたので、もう一度+を押して前景にすばやく戻ることができます。\Ctrl\
私はこれが可能な唯一の組み合わせだと思います。
"\C-\\": "fg\n"
この組み合わせで+戻るをクリックすると、Enter次のような結果が得られます。これは便利です。CtrlV
bash: $'\034': command not found
ベストアンサー1
Ctrl+\ は、Ctrl+C(SIGINT) や Ctrl+Z(SIGTSTP) など、端末に信号 (SIGQUIT) を送信させる制御文字の 1 つです。stty -a
端末に特別な意味を持つ文字を表示するには、実行してください。Linuxのシェル/ターミナルに誤って入力された見えないパスワードの消去/削除詳細については。その結果、Ctrl+を押すと\bashは標準入力で文字を見ることができず、信号を見ることができ、キーバインディングメカニズムを通過しません。
このコマンドを使用して、端末から文字の意味をオフにすることができますstty quit undef
。これにより、bashは文字を入力として扱い、キーバインディングが適用されます。
Ctrl+を\bashバインディングに設定しますが、コマンドを実行するときに通常のターミナルバインディングを使用するには、ターミナル設定を変更します。今後そしてコマンドを実行した後。
preexec () {
stty quit '^\'
}
precmd () {
stty quit undef
}
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`;
preexec "$this_command"
}
trap 'preexec_invoke_exec' DEBUG
PROMPT_COMMAND='precmd'
キータイプfg
と改行文字を提供する代わりに、キーをシェルコマンドにバインドします。ではこれを行うことはできません.inputrc
。これはbashだけでなく、すべてのreadlineアプリケーションにも当てはまります。代わりに、以下でbashバインディングを定義してください.bashrc
。
bind -x '"\C-\\": "fg"'