アイキャッチ画像: デスクの上でパソコンを使用している

本日は Drupaler の友「 Drush コマンド」のオートコンプリーションのお話です。

Drupal 開発を行ううえでたいへん重宝する Drush コマンドですが、機能が豊富な分だけサブコマンドがたくさんあるため「なかなかサブコマンドが覚えられない・・・」という悩みを持つ開発者の方も多いのではないかと思います。

そんな方の強力な助けになるのが、今回ご紹介する Drush のオートコンプリーション機能です。

オートコンプリーションとはいわゆるタブ補完のことで、コマンドを途中まで入力すれば残りの部分が自動で補完される機能を提供してくれます。

「 Drush なんか全然知らない!」なんて場合には少し厳しいのですが、、「あれは a 始まりのサブコマンドだった気がするなぁ・・・」程度にぼんやりとでも覚えていれば、オートコンプリーションのサジェスト機能によってコマンドを呼び出すことができます。

たとえば

$ drush pm-en

まで入力すると

$ drush pm-enable

が補完されます。

さらにここからタブを押すと、なんと!このコマンドの引数になりうる文字列( pm-enable の場合はモジュール名)がサジェストされます。なんと!

以下はこのオートコンプリーション機能のインストール方法を。実際には、オートコンプリーション有効化のためのシェルスクリプトを導入する形になります。以下は使用するシェルが bash の場合です。

まず drush.complete.sh ファイルを適当な場所に作成します。ホーム直下の .bash_completion の中あたりがよいでしょうか。その中に次のページで紹介されているコードを貼り付けます。

drush.complete.sh | Drush API

次にこのスクリプトをシェルの起動時に読み込まれるように設定します。

このあたりは設定次第なのですが、ホーム直下の .bash_profile あるいは .bashrc の中に以下のコマンドを追加します(中身がすでにある場合はそれを消してしまわないよう注意が必要です)。

if [ -f ~/.bash_completion/drush.complete.sh ]; then
    . ~/.bash_completion/drush.complete.sh
fi

これで設定は完了!です。

問題なく設定できていれば、この後に起動したシェルでは drush のオートコンプリーションが利くようになっているはず!です。

コマンドを素早く入力したいときはもちろん、コマンドがうろ覚えのときや新しいコマンドを知りたいときなんかにも便利なので、 Drush 使いの方はぜひ導入を検討してみてください。

ちなみに、 Mac の Homebrew を導入している場合は

$ brew install drush

コマンドで Drush のインストールといっしょにオートコンプリーション有効化スクリプトもダウンロードされてきます。

その場合は /usr/local/etc/bash_completion.d の下に drush という名前で入っているので、 Mac の方にはこちらの方法もおすすめです。

すでに Homebrew で Drush 入れたかも?!という場合は

$ ls /usr/local/etc/bash_completion.d

あたりで調べてみるとよろしいかと思います。