また、
Delete
、
Backspace
、
Escape
さらには
Enter
など、届きにくいキーを避けようとすると、次のレベルの「マインド
Delete
」な体験があります。
10本指のタッチタイピングの標準位置に手をかざす場合、小指で小指に手を伸ばすよりも
Ctrl-m
を押す方が便利です。
この記事では、他の多くの場所で機能しますが、どの端末でも使用できる便利なキーボードショートカットについて説明します。
まず、比較表:
役職 | 典型的なキー | 便利な代替品 |
---|---|---|
スタートライン | Home
| Ctrl-a
|
行末 | End
| Ctrl-e
|
前方に1文字 | Right Arrow
| Ctrl-f
|
1文字戻る | Left Arrow
| Ctrl-b
|
カーソルの下の文字を削除 | Delete
| Ctrl-d
|
カーソルの前の文字を削除 | Backspace
| Ctrl-h
|
歴史上の前のチーム | Up Arrow
| Ctrl-p
|
歴史上の次のチーム | Down Arrow
| Ctrl-n
|
コマンド入力 | Enter
| Ctrl-j
または Ctrl-m
|
役職 | キーボードショートカット |
---|---|
前の単語をカット | Ctrl-w
|
行末まですべてカット | Ctrl-k
|
行頭まですべてカット | Ctrl-u
|
貼り付けカット | Ctrl-y
|
ロールバック変更 | Ctrl-_ (Ctrl+Shift+-)
|
画面をクリア | Ctrl-l
|
なぜ機能するのか
まず、広く使用されている
readline
ライブラリがあります。 システムから削除してみてください。これに依存するアプリケーションの数がわかります( これは悪い冗談でした。やってはいけません )。 公式ホームページから:
GNU Readlineライブラリは、ユーザーが入力場所で入力コマンドを直接編集できる一連の関数を提供します。
これは、アプリケーションがユーザー入力にこのライブラリを単純に使用できることを意味し、すべての「グッズ」を処理します。 公式ドキュメントから、デフォルトでemacsモードとviモードがサポートされていることがわかります。 Viモードは、ウィマーにはより馴染みのあるものですが、1つの重大な欠点があります。現在のモードのインジケーターがないことです。
readline
はほとんどの組み合わせを提供しますが、すべてではありません。 それらの中には、
Ctrl-h
、
Ctrl-m
、
Ctrl-j
ます。 しかし、なぜ機能するのでしょうか? あなたは答えを好きになると思います。
ASCII文字テーブルを覚えていますか? テーブルの先頭には、32の古い不要な制御文字があります。 そして、
xev
ユーティリティと
Ctrl-m
組み合わせを見ると、
<code> KeyReleaseイベント、シリアル34、合成NO、ウィンドウ0x1800001、 ルート0x103、サブ0x0、時間17907461、(780,924)、ルート:(3342,946)、 状態0x4、キーコード58(keysym 0x6d、m)、same_screen YES、 「XLookupStringは1バイトを与えます:(0d)」 XFilterEventは以下を返します:False </ code>
この
XLookupString
は、この組み合わせに対して0x0dバイトを返します。 また、 0x0dバイトは、 キャリッジリターン制御文字(
\r
とも呼ばれる)にすぎません。 この制御文字は、コマンドを受け入れるように端末に指示し、
Enter
と同じように機能
Enter
ます。 したがって、制御文字はそれほど不要ではありません(少なくとも、それらの一部)。
別の興味深い質問は、
Ctrl-m
組み合わせと復帰文字の関係をシステムがどのように決定するかです。 答えはそれほど興味深いものではありません- キャレット表記法 :印刷を使用して制御文字を記述する方法。 ルールは非常に単純です。制御文字コードの7番目のビットをインベントリし、対応する印刷物を取得するだけです。 一方では、すべてがシンプルです。 他方では、再割り当てできません。 しかし、私を信じないで、 ここで自分自身をチェックしてください 。
以上です。 この資料がお役に立てば幸いです。 自分自身を改善する!
PSバージョン6.3以降、
readline
のモードインジケータは引き続き存在します。 これを行うには、
set show-mode-in-prompt On
を〜/ .inputrcに追加し
set show-mode-in-prompt On
。 ありがとうxaizek
PSS asciiコードの表は、コマンド
man ascii
表示できます。 繰り返しますが、 xaizekに感謝します