bashには、カーソルの前の最後の2文字を交換するctrl+のショートカットがあることに気付きましたT。
なぜエンジニアがこれを含めることにしたのかと思います。
- 以前のコンベンションから継承されましたか?
- または、これが一般的に使用される実用的な目的はありますか?
readline
ChangeLog
readline
bashには、カーソルの前の最後の2文字を交換するctrl+のショートカットがあることに気付きましたT。
なぜエンジニアがこれを含めることにしたのかと思います。
readline
ChangeLog
readline
回答:
これは、使用していますGNU Emacsの、から(readlineので)継承されたcontrol- T文字を転置するために:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
bashの行エディタはデフォルトでEmacsモードになっていますが、必要に応じてviモードに切り替えることもできます。
タイプミスをすばやく修正することは非常に便利です:
sl
になる
ls
単一のCtrlT。
AltT単語を交換するためにも使用できます(たとえば、service
とsystemctl
...を切り替える場合)。
歴史的に言えば、このCtrlT機能はおそらくEmacsからBashに導入されました。他のエディターからEmacsにコピーされた可能性があります。1980年までにスタンフォード大学のEエディター(エッセンシャルEページ13を参照)に存在し、Eはリチャードストールマンに強い影響を与えました(Free as in Freedomで説明されています)。これは、1989年の最初のリリースの前のBashの非常に初期のバージョンで実装され、readline
現在のライブラリに引き出されました(readline
ChangeLog
ヒントの最初のエントリ)。
word1 word2 word3
たword3 word2 word1
場合に変更されword3
ます。
このキーの組み合わせは、emacs
エディターから継承されたバインディングであり、入力された最後の2文字が行の最後でスワップされ、行の中央で使用され、カーソルの左側の文字とその下の文字を交換しますカーソル。
このようなめったに使用されない機能を、さらに数回のキーストロークで簡単に実現できるようにすることは、無駄に思えるかもしれません。私のような古いタイマーはかなり頻繁に使用し、70年代後半、特に長い回線の真ん中にある300ボーモデムの時代に送信時間を節約するために使用されていました。
Alt+ にバインドされた同様の便利なコマンドTは、カーソルの左右の単語を入れ替えます。
Tそれが転置の最初の手紙であるので選ばれた。同様の起源を持つ他のバインディングには次のものがあります。
GNUのreadlineのパッケージに実装され、これらのバインディングは、のようなユーザー入力のためにそれを使用するすべてのプログラム、でそれゆえ利用可能なbashのが、また、GDB、BC、...
FirefoxのURL入力行、OS / Xグラフィカルインターフェイスのテキスト入力フィールド、および多くのXベースのウィンドウマネージャーなど、他の環境でも使用できるものがあります。
vimユーザーは、環境変数を介して対応するバインディングを選択できます。
Alt
とCtrl
バージョンが一貫した方法で関連付けられていることを認識すると、本当にメモリを助けます。
C-t
しかし、何もしないようです。 wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindings
bash
ではありませんが、readline
(bashはプロンプトでの入力に使用します)。bashはemacs
キーバインディングを使用しています。お使いのエディタウォーズ党派場合は、viのキーバインドを変更することができます。)sanctum.geek.nz/arabesque/vi-mode-in-bashのための「チート・シート」のカップルありますreadline
ここでは:readline.kablamo.org/emacs .htmlをしてreadline.kablamo.org/vi.html。