皆さん、Finder のタグ機能を活用していますか?
タグ機能って実は便利で、階層構造に依らずに同じ属性のディレクトリやファイルをまとめることができます。
例えば、 お気に入り タグでよく使うディレクトリをまとめたり、 作業中 タグで進行中タスクのディレクトリをまとめることができます。
今回は お気に入り タグを例に、 コマンドラインからもタグを便利に使う方法を紹介します。
ghq
でリポジトリを管理している人もこれを少し改良すれば、必要なくなるかも??
できること
- Finder とコマンドラインでタグを共有できます。
-
⌥ f
でお気に入りのディレクトリに移動できます。
コマンドラインでの操作
-
lsfav
でお気に入りの一覧表示 -
addfav
でディレクトリやファイルのお気に入りに追加 -
rmfav
でお気に入り中のディレクトリやファイルの選択・削除 -
cdfav
or⌥ f
でお気に入り中のディレクトリを選択・移動
設定
zsh
ユーザ向けの設定になっています。
ショートカットの部分以外は bash
でも動くと思います(未検証)。
1. Finderの設定
- Finderの 環境設定 から タグ を選択
-
+
を押してタグを追加 & 名前を お気に入り に変更 - 好みに応じて お気に入り タグの色を変更
- 不要なタグのチェックを外してサイドバーから削除
- 下の よく使うタグ から、不要なタグをすべて消して お気に入り タグを追加
2. 必要なツールのインストール
brew install fzf tag
-
fzf
はあいまい検索をするためのツールです。削除や移動でインタラクティブにディレクトリを選択するために使用します。 -
tag
はコマンドラインからFinderのタグを操作するためのツールです。
3. ターミナルの設定
option
キーとの組み合わせで記号が入力されないように設定します。
Terminal.app の場合
-
環境設定
>プロファイル
>キーボード
を開く -
メタキーとしてOptionキーを使用
にチェック
iTerm2 の場合
-
Preferences...
>Profiles
>Keys
を開く -
Left Option (⌥) Key
とRight Option (⌥) Key
をEsc+
に変更
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