答えて
これはエルキャピタンに私のために簡単な、bashの補完を達成するようだ:
# .bashrc
function _makefile_targets {
local curr_arg;
local targets;
# Find makefile targets available in the current directory
targets=''
if [[ -e "$(pwd)/Makefile" ]]; then
targets=$(\
grep -oE '^[a-zA-Z0-9_-]+:' Makefile \
| sed 's/://' \
| tr '\n' ' ' \
)
fi
# Filter targets based on user input to the bash completion
curr_arg=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -W "${targets[@]}" -- $curr_arg));
}
complete -F _makefile_targets make
ここでは、これがどのように動作するかです:
完全-F [関数名] [コマンド名] - - このbash組み込み関数は、bash関数[関数名]によって生成される[コマンド名]の新しい補完を登録します。上記の私のコードでは、シェルに
make [TAB][TAB]
と入力すると、_makefile_targets()
関数がトリガーされます。[[-e "$(pwd)/ Makefile"]]; - 現在のディレクトリにMakefileがあることを確認します。そうしないと、bash補完を試みません。
はgrep -oe '^ [-ZA-Z0-9 _-] +' のMakefile - "テスト:" のようなターゲット名に正規表現を使用したMakefileのすべての行をフィルタリングします。
-o
は、一致する行の一部のみを返すことを意味します。例えば、 "test:build package"のようなMakefileターゲットが与えられた場合、 "test:"だけが返されます。| sedの/:// ' - grep結果を取得し、行末からコロンを削除します。
| TR「\ n」を「」は - 1行にすべてのターゲットsmoosh、あなたのためのいくつかの環境変数を設定します
complete
1つのスペースbashの補完機能インサイド
、で区切られています。 COMP_WORDS
は、ユーザが入力した内容に基づいて利用可能なbash補完チョイスのリストの配列です。 COMP_CWORD
は現在選択されている単語のインデックスです。
もう一つの非常に魔法の組み込みcompgen
は、スペースのリストを別々の文字列として受け取り、現在選択されている単語を使用してそれらをフィルタリングします。私はその仕組みがはっきりしていない。
最終行は、関数内の最後の2行がmakefileターゲットのリスト($targets
の中に格納されている)をフィルタリングし、それらを配列COMPREPLY
に移動することです。 bash補完によって、シェル内の選択肢としてCOMPREPLY
が読み込まれ、表示されます。
'.bashrc'に' Makefile'の代わりに 'makefile'を追加すると、小文字の名前を持つメークファイルを十分に考慮することができます。 –
@DenisBitouzéはい!お使いのOSに応じてメイクファイルを作成する可能性がかなりあります。 – Rustavore
- 1. Pythonの自動補完4
- 2. パスのMakefile自動補完
- 3. Emacsの自動補完モード
- 4. AutoCompleteTextView自動補完候補を隠す
- 5. 自動補完アドレス入力
- 6. JSP ELや自動補完
- 7. 自動補完機能Java
- 8. AC(自動補完)dabbrev
- 9. メモ帳++と自動補完
- 10. 形質でのPhpStormの自動補完
- 11. サブライムでERBの自動補完
- 12. Emacs-Lispモードでの自動補完
- 13. R:データシーケンスの自動補完とデータ補完?
- 14. 起動時のEmacs自動補完モード
- 15. ブラウザのログインフォームの自動補完ソリューション
- 16. emacsのQtの自動補完
- 17. Emacsのコードブラウジング、リファクタリング、自動補完
- 18. サーバサイドの自動補完問題json
- 19. Unity - Visual Studioの自動補完修正
- 20. Netbeans変数の自動コード補完
- 21. ドロップダウンメニューの自動補完検索バー
- 22. Quoraのプレフィックスマッチングと自動補完
- 23. clang_complete:iOS用のVim自動補完
- 24. 理解Firefoxの」自動補完ポップアップ
- 25. 自動補完検索のデフォルト値
- 26. 自動補完によるJavaのスペルチェック
- 27. aptanaスタジオの自動補完機能
- 28. Jsonスキーマの自動補完プロパティ
- 29. 自動補完フォントサイズの違い
- 30. Vimperator入力フィールドの自動補完
は、あなたが(インストールおよび/または有効)を見つけることができるかどうかを確認する必要がapproprate bashの補完を:に触発
あなたのマシンで。 OS Xを搭載して出荷されているのか、BREWなどで入手できるのか分かりません。 –
@EtanReisner Mac OS 10.8でその補完について言及しておいたはずです。 'cd'。したがって、私はいくつかのbash補完が既にコンピュータ上で利用可能であると思う。 –