web-dev-qa-db-ja.com

端末のオートコンプリート:候補を循環

私はこれをUbuntuのセットアップで使用していて、Fedoraに切り替えたので、それを設定したいのですが、方法を忘れてしまいました...アイデアは単純です:

ダブルしたときにターミナルに候補が表示されたくない tab代わりに、押すたびに可能なすべての提案を循環させたい tab...これはVimでも実行できます。

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

39
vanjadjurdjevic

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

bind TAB:menu-complete

あなたはおそらくあなたの~/.bashrcにそれを追加したいと思うでしょう。または、~/.inputrcのすべてのreadline補完(bashだけでなく)に対して構成することもできます。

また、bind -p(現在のバインディングを表示、タブを"\C-i"として表示することに注意)およびbind -l(バインド可能なすべての関数を一覧表示)、および bashマニュアルの行編集セクション および readline's documentation

53
derobert

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.
8
gmarmstrong