私は本を読んでいますLearning Unix for OS X by Dave Taylor
。それは言う:
システム上のすべてのバイナリ実行可能ファイル(Unixプログラム)をすばやく表示するには、
ターミナルを開き、
Shift
キーを押しながらを押すEsc-?
か、を押してControl-X
からShift-1
(Shift-1
感嘆符を取得するには)を押します。ただし、コマンドが端末に表示される前に、最初に選択するように求められます。
$ Display all 1453 possibilities? (y or n)
キーボードのキーを押すと
n
コマンドプロンプトに戻り、何も起こりません。ただし、このキーを押すと、y
ターミナルウィンドウにUnixコマンドフローの複数の列のリストが表示されます。
ところで、問題は、Shift
キーを押しながら押してもEsc-?
何も起こらないということです。かかとを押す場合もControl-X
同様ですShift-1
。私は何が間違っていましたか?この機能を使用する前に有効にする必要がある設定はありますか? Mac El CapitanでiTerm2を使用しています。また、基本端末では動作しません。どんな助けでも大変感謝します。ありがとうございます。
ベストアンサー1
本の指示はbashに適用されます。 Zshはキーバインディングが異なる別のプログラムです。
zshでは、以下を使用してすべてのコマンド(外部、組み込み、関数、エイリアス、キーワード...)のリストを表示できます。
type -m '*'
彼らの名前を例にしてください。
whence -wm '*' | sed 's/:[^:]*$//'
または外部コマンド名の場合:
print -rlo -- $commands:t | less
$commands
すべての外部コマンドを含む配列です。これ履歴修飾子 :t
コマンドパスのディレクトリ部分を切り捨てます。ティーアル)。print -rlo
印刷してみてくださいアル字型ああアルファベット順ああ1個あたり1個注文私ね。
より長いが、あまり神秘的ではない。
for p in "$path[@]"; do (cd ${p:-.} && ls); done | sort -u | less
すべてのshスタイルシェルで動作するように調整できます。
(IFS=:; for p in $PATH; do (cd ${p:-.} && ls); done) | sort -u | less
(ここにリストされているすべてのコマンドは、コマンドパスに「珍しい」文字がないと仮定します。)