LoginSignup
4
3

More than 3 years have passed since last update.

【ghqはもう要らない?】Finderタグのコマンドライン活用術

Last updated at Posted at 2020-12-09

皆さん、Finder のタグ機能を活用していますか?
タグ機能って実は便利で、階層構造に依らずに同じ属性のディレクトリやファイルをまとめることができます。
例えば、 お気に入り タグでよく使うディレクトリをまとめたり、 作業中 タグで進行中タスクのディレクトリをまとめることができます。

今回は お気に入り タグを例に、 コマンドラインからもタグを便利に使う方法を紹介します。
ghq でリポジトリを管理している人もこれを少し改良すれば、必要なくなるかも??

できること

  • Finder とコマンドラインでタグを共有できます。
  • ⌥ f でお気に入りのディレクトリに移動できます。

コマンドラインでの操作

  • lsfav でお気に入りの一覧表示
  • addfav でディレクトリやファイルのお気に入りに追加
  • rmfav でお気に入り中のディレクトリやファイルの選択・削除
  • cdfav or ⌥ f でお気に入り中のディレクトリを選択・移動

capture.gif

設定

zsh ユーザ向けの設定になっています。
ショートカットの部分以外は bash でも動くと思います(未検証)。

1. Finderの設定

  1. Finderの 環境設定 から タグ を選択
  2. + を押してタグを追加 & 名前を お気に入り に変更
  3. 好みに応じて お気に入り タグの色を変更
  4. 不要なタグのチェックを外してサイドバーから削除
  5. 下の よく使うタグ から、不要なタグをすべて消して お気に入り タグを追加

Finder_TabSetting.png

2. 必要なツールのインストール

brew install fzf tag
  • fzf はあいまい検索をするためのツールです。削除や移動でインタラクティブにディレクトリを選択するために使用します。
  • tag はコマンドラインからFinderのタグを操作するためのツールです。

3. ターミナルの設定

option キーとの組み合わせで記号が入力されないように設定します。

Terminal.app の場合

  1. 環境設定 > プロファイル > キーボード を開く
  2. メタキーとしてOptionキーを使用 にチェック

iTerm2 の場合

  1. Preferences... > Profiles > Keys を開く
  2. Left Option (⌥) KeyRight Option (⌥) KeyEsc+ に変更

4. ~/.zshrc の編集

~/.zshrc に以下を追記します。

~/.zshrc
if (which fzf > /dev/null 2>&1) && (which tag > /dev/null 2>&1); then
    # タグの名前
    _favorite_tag="お気に入り"

    # 一覧表示
    function lsfav() {
        tag -f "${_favorite_tag}" $@
    }

    # 追加
    function addfav() {
        tag -a "${_favorite_tag}" $@
    }

    # 削除
    function rmfav() {
        lsfav "$@" | fzf -m --print0 | xargs -0 tag -r "${_favorite_tag}"
    }

    # 移動
    function cdfav() {
        cd $(lsfav -p | grep '/$' | fzf)
    }

    # option + f で移動
    function _cdfav_widget() {
        cdfav
        zle reset-prompt
    }
    zle -N _cdfav_widget
    bindkey '^[f' _cdfav_widget
fi
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3