こんにちは。あやかです。
Macでターミナル作業をしていると、「あのコマンド何だっけ?」とか「このファイル、どこにあったっけ?」みたいなこと、ありませんか?私はしょっちゅうあります。
macOSのデフォルトシェルがbashからzshに変わって、確かに以前より便利になりました。でも、ちょっとツールを追加するだけで、もっと快適になるんです。
今回は、zsh初心者の私が「これは便利!」と思った2つのツールを紹介します。
zshって何が便利なの?
まず、zshの基本的な便利ポイントをおさらいしておきます。
macOSは、Catalina(10.15)からデフォルトシェルがzshになりました。bashと比べて、何が便利になったかというと:
補完機能が賢い
コマンドのオプションや、gitのブランチ名なんかも補完してくれます。Tabキーを押すと候補がリスト表示されて、矢印キーで選べるのも地味に便利です。
履歴機能が強力
複数のターミナルを開いていても、履歴を共有できます。Ctrl+Rで履歴を検索できるのは、bashでもできましたが、zshの方が使いやすいです。
カスタマイズしやすい
プロンプト(コマンドを入力する行)の見た目を自由に変えられます。gitのブランチ名を表示したり、色を変えたり。
こんな感じで、zshは標準でも十分便利なんですが、今回紹介する2つのツールを入れると、もっと快適になります。
fzf:検索が劇的に便利になる
最初に紹介するのは「fzf」です。
fzfって何?
fzfは、あいまい検索(fuzzy finder)ツールです。コマンド履歴、ファイル、ディレクトリを、直感的に検索できます。
文字を打つと、リアルタイムで候補が絞り込まれるので、目的のものをすぐに見つけられます。
インストール方法
Homebrewでインストールできます。
brew install fzf
# キーバインドとシェル補完を有効にする
$(brew --prefix)/opt/fzf/install
最後のコマンドを実行すると、対話形式で質問されます。すべて「Yes」で答えておけば大丈夫です。これで、.zshrcに設定が自動追加されます。
設定を反映させます。
source ~/.zshrc
3つの便利機能
fzfには、3つの便利なキーバインドがあります。
1. Ctrl+R:履歴検索
コマンド履歴を検索できます。
Ctrl+Rを押すと、過去のコマンド履歴が一覧表示されます。文字を打つと、リアルタイムで絞り込まれます。矢印キーで選んで、Enterで確定すると、そのコマンドが入力されます。
私の場合、hugo server -Fとかgit pushみたいに、繰り返し使うコマンドが多いんです。fzfなら、hugoって打つだけで、hugo関連のコマンドだけに絞り込まれます。長いコマンドも一瞬で呼び出せるので、本当に便利です。
2. Ctrl+T:ファイル検索
カレントディレクトリ以下のファイルを検索して、パスを挿入できます。
例えば、vimって打った後にCtrl+Tを押すと、ファイル一覧が表示されます。ファイル名の一部を打つと絞り込まれて、選択すると自動でパスが入力されます。
深い階層にあるファイルを開くときに、いちいちパスを打たなくていいので楽です。設定ファイルを編集したいときなんかに、特に便利ですね。
3. Option+C:ディレクトリ移動
ディレクトリを検索して、すぐに移動できます。
Option+C(Macの場合)を押すと、ディレクトリ一覧が表示されます。ディレクトリ名の一部を打つと絞り込まれて、選択すると自動でcdされます。
※Macの場合、Optionキーがメタキーとして認識されない場合があります。その場合は、ターミナルの設定で「Optionキーをメタキーとして使用」を有効にしてください。私はTabbyを使っているので、Settingsから「Option/Alt key sends meta」のような設定を探して有効にしました。
使ってみた感想
fzfを入れてから、ターミナル作業がすごく楽になりました。
特に、履歴検索とディレクトリ移動が便利です。以前は、履歴をCtrl+Rで遡って探したり、cdでパスを打ったり、みたいなことをしていたんですが、その手間がなくなりました。
ファイル検索も、深い階層にあるファイルを開くときに重宝します。「あのファイル、どこだっけ?」って思ったとき、Ctrl+Tで一発です。
視覚的に候補が見えるのも分かりやすいです。「あのコマンド何だっけ?」って思ったとき、一覧で確認できるので、すぐに見つけられます。
zsh-autosuggestions:入力が楽になる
2つ目は「zsh-autosuggestions」です。
zsh-autosuggestionsって何?
打ってる途中で、過去のコマンドを薄く表示してくれるツールです。
履歴から自動で候補を出してくれるので、タイプ量が減ります。右矢印キーで確定できるので、操作も簡単です。
インストール方法
Homebrewでインストールできます。
brew install zsh-autosuggestions
.zshrcに以下を追加します。
# zsh-autosuggestions
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
設定を反映させます。
source ~/.zshrc
使い方
使い方は簡単です。
- コマンドを打ち始める(例:
git) - 薄いグレーで候補が表示される
- 右矢印キー(→)を押すと確定
- 違う候補がいい場合は、そのまま続けて打つ
過去によく打つコマンドほど、候補として出やすくなります。
使ってみた感想
地味だけど、めちゃくちゃ便利です。
特に、長いコマンドとか、オプションが複雑なコマンドを打つときに重宝します。数文字打っただけで、候補が出てくるので、タイプミスも減りました。
fzfのCtrl+Rと使い分けています。「最近使ったコマンドをもう一回」みたいなときは、autosuggestionsで十分です。数文字打てば候補が出るので、わざわざ検索画面を開く必要がありません。
逆に、「ちょっと前に使ったコマンド」とか「似たようなコマンドを探したい」ときは、fzfで検索します。一覧で確認できるので、目的のコマンドを見つけやすいです。
まとめ
今回は、zsh初心者の私が最初に入れた2つのツールを紹介しました。
fzf:履歴、ファイル、ディレクトリを検索できるツール。Ctrl+R、Ctrl+T、Option+Cで快適に操作できます。
zsh-autosuggestions:打ってる途中で、過去のコマンドを薄く表示してくれるツール。右矢印で確定できるので、タイプ量が減ります。
どちらも導入が簡単で、すぐに効果を実感できます。zshを使い始めたばかりの方は、ぜひ試してみてください。
次のステップとしては、プロンプトのカスタマイズ(Starshipとか)や、プラグインマネージャー(oh-my-zshとか)を入れて、もっと便利にしていくのもありですね。
それでは、また。