web-dev-qa-db-ja.com

bashでのctrl + Tの意図的な使用?

Bashにはショートカットがあることに気づきました ctrl+T カーソルの前の最後の2文字を入れ替えます。

なぜエンジニアがこれを含めることにしたのかと思います。

  • 以前の大会から受け継がれたのですか?
  • または、これが一般的に使用される実用的な目的はありますか?
49

これはGNU Emacsから(readlineによって)継承され、 control-T 文字の転置:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html

BashのラインエディターのデフォルトはEmacsモードですが、必要に応じてviモードに切り替えることもできます。

27
Dimitry Andric

タイプミスをすばやく修正することは非常に便利です。

sl

なる

ls

シングルで CtrlT

使用できます AltT 単語も入れ替える(例:servicesystemctl...を切り替えるとき)。

歴史的に言えば、 CtrlT 機能はおそらくEmacsからBashに来ました。他のエディタからEmacsにコピーされた可能性があります。それは1980年までにスタンフォード大学のEエディター( Essential E 13ページを参照)に存在し、EはRichardに強い影響を与えましたストールマン( Free as Freedom で説明)。これは、1989年に最初のリリースが行われる前のBashの非常に初期のバージョンに実装され、readlineライブラリに引き渡されて、今日存在しています( readlineChangeLog これに関するヒント)。

64
Stephen Kitt

このキーの組み合わせは、emacsテキストエディターから継承されたバインディングであり、入力された最後の2文字が行末で入れ替えられ、行の途中で使用されます。これにより、左側の文字が入れ替えられますカーソルとカーソルの下のカーソル。

あまり使用されない機能をいくつかのキーストロークで簡単に実現するためのバインディングがあると、無駄に見えるかもしれません。私のような古いタイマーはかなり頻繁に使用し、70年代後半、特に長い回線の真ん中で、300ボーモデムの時代には送信時間を節約するために使用されていました。

にバインドされた、同様でより便利なコマンド Alt+T、カーソルの左側と右側の単語を入れ替えます。

T transposeの最初の文字であるために選択されました。同様のOriginを持つ他のバインディングには、次のものがあります。

  • Ctrl+Bbackwardの場合、カーソルを1つ左に移動します。
    • Alt+B カーソルを1ワード左に移動し、
  • Ctrl+Fforwardの場合、カーソルを1ポジション右に移動します。
    • Alt+F カーソルを1単語右に移動し、
  • Ctrl+AAnfangまたはanteの場合、カーソルを行の先頭に移動し、
  • Ctrl+Eendの場合、カーソルを行末に移動し、
  • Ctrl+Nnextの場合、次の行を取得し、
  • Ctrl+Ppreviousの場合、次の行を取得し、
  • Ctrl+Ddeleteの場合、カーソルの下の文字を削除します。
    • Alt+D カーソルの下の単語を削除し、
  • Ctrl+Kkillの場合、行末をカットし、
  • Ctrl+Yyankの場合、クリップボードの内容を貼り付け、

GNU readlineパッケージに実装されているこれらのバインディングは、bashなどのユーザー入力にそれを使用するすべてのプログラムで使用できますが、 gdbbc、...

一部のものは他の環境でも使用できます。FirefoxURL入力行、OS/Xグラフィカルインターフェースのテキスト入力フィールド、および多くのXベースのウィンドウマネージャー。

vimユーザーは、環境変数を介して対応するバインディングを選択できます。

それは、誤ってletoのペアを入れ替えた、smiple tpyosを修正するためのvrey useuflです。

(両方の手首に深刻なRSIがあり、個人的にこれを頻繁に使用することになります...)

10
fluffy

タイプミスをすばやく修正します。コースの前にある即時の2修正ブロックに影響します。

入力した場合ls-およびlsとハイフンの間にスペースが必要な場合は、次を使用できます Ctrl + T

これは、ハイフンの後にスペースがある場合に機能し、次に Ctrl + T

4
Mongrel