ターミナルオートコンプリート:提案ループ検索

ターミナルオートコンプリート:提案ループ検索

Ubuntuの設定にこれがありますが、Fedoraに切り替えてから設定したかったのですが、方法を忘れてしまいました...アイデアは簡単です。

をダブルクリックしたときに端末に提案が表示されたくないのでtab、代わりにクリックするたびに可能なすべての提案が循環されるようにしたいですtab。 Vimでもこれを行うことができます。

したがって、入力してgedit a押すと、tab最初の文字を含むすべてのファイルが表示されますa

答え1

これは実際にはreadlineという関数ですmenu-complete。次のコマンドを実行してタブにバインドできます(デフォルトを置き換えますcomplete)。

bind TAB:menu-complete

~/.bashrcあるいは、bashだけでなく、すべてのreadlineで実行するように設定することもできます~/.inputrc

bind -pまた、(現在のバインディングの表示、タブがとして表示されます"\C-i")、およびbind -l(バインド可能なすべての機能の一覧)も便利です。Bash マニュアルの行編集セクションそしてreadline に関するドキュメント

答え2

Bashで完了メニューを循環させることができ、プロジェクトメニューを表示することもできます。 Zshとは異なり、現在のメニュー項目は強調表示されません。

次に追加~/.inputrc:

set show-all-if-ambiguous on
set show-all-if-unmodified on
set menu-complete-display-prefix on
"\t": menu-complete
"\e[Z": menu-complete-backward

文書man bash:

Readline Variables
    menu-complete-display-prefix (Off)
           If set to On, menu completion displays the common prefix of the
           list of possible completions (which may be empty) before cycling
           through the list.
    show-all-if-ambiguous (Off)
           This alters the default behavior of the completion functions. If
           set to On, words which have more than one possible completion
           cause the matches to be listed immediately instead of ringing
           the bell.
    show-all-if-unmodified (Off)
           This alters the default behavior of the completion functions in
           a fashion similar to show-all-if-ambiguous. If set to On, words
           which have more than one possible completion without any
           possible partial completion (the possible completions don't
           share a common prefix) cause the matches to be listed
           immediately instead of ringing the bell.

Completing
    menu-complete
          Similar to complete, but replaces the word to be completed with
          a single match from the list of possible completions. Repeated
          execution of menu-complete steps through the list of possible
          completions, inserting each match in turn. At the end of the list
          of completions, the bell is rung (subject to the setting of
          bell-style) and the original text is restored. An argument of
          n moves n positions forward in the list of matches; a negative
          argument may be used to move backward through the list. This
          command is intended to be bound to TAB, but is unbound by
          default.
    menu-complete-backward
          Identical to menu-complete, but moves backward through the list
          of possible completions, as if menu-complete had been given
          a negative argument. This command is unbound by default.

答え3

新しいシェル環境による代替ソリューション:

端末環境を bash から次に変更することをお勧めします。基本的に、構文の強調表示やその他のいくつかの機能と一緒にオートコンプリート機能があります。

ここに画像の説明を入力してください。

関連情報