CTRL時々、誤って+を押してしまいZ、アプリケーションがバックグラウンドに消えてしまうことがあります。 で元に戻せるのでfg
、それほど大きな問題ではないことはわかっています。しかし、job control
とにかくこれをオフにしようかと思っています。これまでの人生で、これが必要だった瞬間を思い出せません。過去の遺物にしか思えません。
これを完全に無効にしても大丈夫ですかjob control
?それとも、私が何か見落としていて、この機能が役に立つのでしょうか?私の環境でこれを無効にするにはどうすればよいですか?.bashrc
アップデート:
@Falsenames の提案どおりに試してみましたset +m
。ただし、これはターミナルで入力した場合にのみ機能します。myset +m
に追加しても.bashrc
効果はありません。
答え1
監視モードの使用を停止するには、コマンド ラインに次のコードを追加できます。
+m を設定
後で ctrl-z 機能が本当に必要になった場合は、「set -m」と入力するだけで、そのセッションの監視を有効にすることができます。
から男の強打これは '-m' 用であり、"+m" でその設定が無効になることに注意してください。
set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...]
....
-m
Monitor mode. Job control is enabled. This option is on by default for interactive
shells on systems that support it (see JOB CONTROL above). Background processes
run in a separate process group and a line containing their exit status is printed
upon their completion.
最後の手段として、"--enable-job-control"フラグなしでbashのバージョンを手動でコンパイルすることもできます。インストールガイドGNU から。この方法を選択する場合は、バックグラウンド プロセスが bash を介してジョブ制御を期待して実行される場合に備えて、/bin/bash を置き換えないでください。代わりに、/bin/bash.alt または別のファイルを作成します。usermod を実行するか、root として /etc/passwd を編集することで、デフォルトのシェルをこの代替シェルに変更できます。
答え2
stty susp undef
は、ほとんどのプログラムでキーボードによるサスペンド信号を無効にしますが、 に特定のバインディングを持つ vim や emacs などのコマンドはCtrl-Z個別に再設定する必要があります。 emacs では、 を実行できます(global-unset-key "\C-z")
。
~/.bash_profile
または、ログアウトして再度ログインするstty コマンドを追加できます~/.profile
。
答え3
それとも、何か見落としているのでしょうか、この機能は役に立つのでしょうか?
質問のこの部分に答えると、Cz / fg
combo は私の vim ワークフローに不可欠です。たとえば、vim 内から git ラッパーを使用するよりも、 Cz > git commit
>を好みます。fg
Czは、シェルをIDEとして扱うのに役立ち、「一つのことをする「原則」です。(「IDE としてのエディター」の代わりにこれを使用します)。
答え4
スクリプトに追加しますtrap "" SIGTSTP
。シグナルをキャッチして無視します。
#!/bin/bash
trap "" SIGTSTP
watch date