Memento memo.

Today I Learned.

zshmarks と prezto と peco でディレクトリ移動をいい感じにする

N番煎じ感があるけど今まで設定してなかったのでやってみます。

zshmarks

ディレクトリをブックマークして移動しやすくするやつです

github.com

似たようなプラグインhttps://github.com/mollifier/cd-bookmark なんかもあるのですが、zshmarksの日本語情報が少ない & star数が多かったので 敢えてこっちを使ってみました。

使い方

基本的な使い方はこんな感じです。

# カレントディレクトリをブックマーク
$ bookmark hoge
# ブックマーク先に移動
$ jump hoge
# ブックマークを削除
$ deletemark hoge
# ブックマーク一覧を表示
$ showmarks hoge
# ブックマークのパスを表示
$ showmarks

このままでも便利なんですが、peco, fzfみたいなファジーファインダと組み合わせてエイリアス貼ると良さげです(後述)

install via prezto

# preztoのルートに移動
$ cd ~/.zprezto
# submoduleに登録
$ git submodule add https://github.com/jocelynmallon/zshmarks.git modules/zshmarks

~/.zpreztorc を修正

zstyle ':prezto:load' pmodule \
  'environment' \
  ...
  'zshmarks' # add this line

zshでログインし直すのを忘れずに

peco との連携

こんな感じの設定を ~/.zshrc に書いてみました。

# zshmarks
peco_change_directory() {
  directory_alias=$(showmarks | peco | awk '{print $1}')
  if test -n "${directory_alias}"; then
    jump "${directory_alias}"
    return 0
  fi
  return 1
}

peco_delete_bookmark() {
  directory_alias=$(showmarks | peco | awk '{print $1}')
  if test -n "${directory_alias}"; then
    deletemark "${directory_alias}"
    return 0
  fi
  return 1
}

alias cdd=peco_change_directory
alias dbm=peco_delete_bookmark
alias bm=bookmark

bm でブックマークを行い(zshmarksの機能)、 cdd dbm でpecoを利用して ディレクトリ移動、ブックマーク削除をできるようにしてみました。良さげです。

エイリアスはもうちょっといい感じの貼り方がある気がするのでいろいろ試したい。

ニーア オートマタ

ニーアオートマタ面白い