Bash端末でEscキーを4回押すと、次のような内容が表示されます。
-bash-4.1$
Display all 2837 possibilities? (y or n)
:
!
./
[
[[
]]
{
}
411toppm
a2p
ac
accept
accton
aclocal
aclocal-1.11
acpi_listen
この機能は何ですか?このアイテムを見つける方法は? (escを2回押すと、ターミナルでビープ音が鳴ります。)
答え1
$ bind -p | grep 'complete$'
"\C-i": complete
"\M-\e": complete
Meta+EscEmacsコマンドライン編集モードでは、デフォルト(およびCtrl+i)キーバインディングはReadline機能であることがわかりますcomplete
。このMetaキーは通常Escキーボードにあり、明示的なキーはありませんMeta。この関数のReadlineドキュメントには次のように記載されています。
そのポイントより前のテキストに完成しようとします。実際の実行はアプリケーションによって異なります。たとえば、Bashはテキストを変数(テキストがで始まる場合
$
)、ユーザー名(テキストがで始まる場合~
)、ホスト名(テキストがで始まる場合)、またはコマンド(別名と機能)です。@
どちらも一致しない場合は、ファイル名の完成が試みられます。一方、Gdbはプログラムの機能と変数の完成を許可し、特定の状況でのみファイル名の完成を試みます。
あなたのコメントについてアントンの答え: いいえ、Escダブルタップは通常はタップとは異なりますTab(Readlineがデフォルトで実行するのと同じ動作にマップするプログラムにない限り)。しかし、Ctrl+i はい同じTab、Ctrl+[同じですEsc。これは、doubleがReadline関数にバインドされている限り、必要に応じてCtrl+[ Ctrl+[補完を使用できることを意味します。たとえば、EscキーのないVT220端末で作業している場合は、次のことが便利です。bash
Esccomplete
答え2
これをファイルコンプリートと呼び、コマンドラインに以前のコマンドがない場合でも、bashは組み込みコマンドとファイル内のコマンドを含むすべての知っている2837コマンドを完了できます。PATH
並べ替え順に表示