👃

WindowsでGit BashにMakefileのサジェスト機能を追加する方法

2024/05/14に公開

Windows 11でGit Bashを使っている際に、Makefileのサジェストが表示されなくて不便な思いをしたのでサジェストを有効にする方法を記事にしていこうと思います。

1. bash-completionのインストール

  1. bash-completionのスクリプトをダウンロード
curl -O https://raw.githubusercontent.com/scop/bash-completion/master/bash_completion
  1. ダウンロードしたスクリプトをホームディレクトリに配置します
mv bash_completion ~/.bash_completion
  1. ~/.bashrcにbash-completionのスクリプトを読み込む設定を追加します
echo "source ~/.bash_completion" >> ~/.bashrc
  1. .bashrcを再読み込みして設定を反映させます
source ~/.bashrc

2. Makefileの補完スクリプトの設定

Makefileのターゲット補完を有効にするためのスクリプトを作成し、~/.bash_completion.d/に配置します。

  1. ~/.bash_completion.dディレクトリを作成します
mkdir -p ~/.bash_completion.d
  1. 補完スクリプトの作成
cat << 'EOF' > ~/.bash_completion.d/make
_make_target_completion() {
    local cur=${COMP_WORDS[COMP_CWORD]}
    if [[ -f Makefile || -f makefile || -f GNUmakefile ]]; then
        COMPREPLY=( $(compgen -W "$(make -qp 2>/dev/null | awk -F: '/^[a-zA-Z0-9][^$#\/\t=]*:/ {print $1}' | sort | uniq)" -- $cur) )
    fi
}

complete -F _make_target_completion make
EOF
  1. .bashrcに補完スクリプトの読み込みを追加
    補完スクリプトを読み込むために、~/.bashrcに以下の行を追加してください。これで、Git Bash起動時に補完スクリプトが自動的に読み込まれるようになります。
echo "source ~/.bash_completion.d/make" >> ~/.bashrc
  1. .bashrcを再読み込みして設定を反映させます。
source ~/.bashrc
  1. Git Bashを再起動してください
exec bash

3. 確認

以下のようにサジェストが表示されたら設定完了です。おつかれさまでした!

Discussion