GNU/Linux >> Linux の 問題 >  >> Linux

.intputrc ファイルで Linux のマクロと関数のキーバインドを作成する方法

Readline は、ホーム ディレクトリの .inputrc 構成ファイルを編集することで、独自のカスタム キーバインドをマップする機能も提供します。

次の 2 種類のカスタム キーバインドを定義できます:

<オール>
  • マクロ
  • 機能
  • マクロ

    実行時にカーソルの現在の位置に文字列を入力するキーバインドを定義できます。これを行うには、次の形式の行を .inputrc 構成ファイルに追加します (または、ファイルがまだ存在しない場合は作成します):

    <key combination>: "<string of characters>"

    たとえば、出力をファイル「~/debug_output.txt」に繰り返しリダイレクトしていることに気付いたとします。次の行を追加することで、.inputrc にマクロを定義できます:

    Control-g: " > ~/debug_output.txt"

    これで、キーの組み合わせ Control-g を入力するたびに、リダイレクト ステートメントがカーソルの後に追加され、他のコマンドの最後に簡単に追加できるようになりました.

    マクロを作成するときは、次の点に注意してください:

    • キーの組み合わせを英語で詳しく説明できます (詳細については、bash の man ページを参照してください。「Readline Key Bindings」セクションを検索してください)
    • マクロによって挿入される一連の文字は、二重引用符 (") で囲む必要があります
    • Control-g の選択は恣意的でした。より意味のある組み合わせを選択できます。
    • デフォルトのキーバインドをオーバーライドすることができます (独自のキーバインドを定義するときは、このことに注意してください)
    • キーバインドを有効にするには、新しいシェル インスタンスを開始する必要があります (シェルの起動時に .inputrc 構成ファイルが読み込まれます)

    関数

    実行時に関数を呼び出すキーバインディングを作成することもできます。 Readline には、選択できる多数の定義済み関数が用意されています。キーの組み合わせを定義済みの機能にマップするには:

    <key combination>: <function-name>

    利用可能な定義済み関数のリストについては、GNU Readline マニュアルを参照してください。

    独自のカスタム関数を定義することもできますが、これには C で記述する必要があり、このチュートリアルの範囲外です。後で別のチュートリアルとして取り上げるかもしれません.

    便利な定義済み関数の 1 つに menu-complete があります。代替のオートコンプリート動作を提供します。

    オートコンプリート (TAB キーにマッピング) のデフォルトの動作は次のいずれかです:

    • 単一の一致が存在する場合は、部分的なコマンド/ディレクトリ/ファイル名を入力してください
    • 複数存在する場合、可能な一致のリストを表示する

    menu-complete は代わりに、可能な一致のリストを循環し、関数が呼び出されるたびに次の可能な一致を埋めます。この動作は、特に長いファイル名をオートコンプリートする場合に便利です。 TAB キーを再マップしてこの動作を使用するには、次の行を .inputrc ファイルに追加します。

    TAB: menu-complete

    この新しいキーバインドは現在のシェルでは有効にならないことに注意してください。.inputrc 構成ファイルをリロードするには、新しいインスタンスを開始する必要があります

    このチュートリアルでは、Linux コマンド ラインのキーバインドが Readline というツールによって強化されていることを学びました。キーバインドは、次の 2 つのタイプのいずれかになります:

    • マクロ:文字列を展開します
    • 機能:アクションを実行します

    Readline はデフォルトのキーバインドのセットを提供しますが、.inputrc 構成ファイルで独自のキーバインドを作成する柔軟性も提供します。最後に、現在のすべてのキーバインドを表示するには、「bind」コマンドを使用できます。

    bind -p

    Linux
    1. Linuxでパスワードで保護されたZIPファイルを作成する方法

    2. Linuxでスワップを作成する方法

    3. Linux で GnuPG を使用してファイルを暗号化および復号化する方法

    1. Linuxでスワップスペースを作成または増やす方法

    2. Linuxで出力をファイルとStdoutにリダイレクトする方法

    3. NFSとは何ですか?Linuxにインストールする方法

    1. Linuxでスワップファイルを作成する方法

    2. Linux でファイルシステムを作成してマウントする方法

    3. ターミナルウィンドウからLinuxでファイルを作成するには?