2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

tmuxのsessionをfzfで選択できるようにする。

Last updated at Posted at 2019-10-19

概要

各リポジトリをtmuxのsessionで管理しているのだが、数が多くなってきてprefix + sで毎回上下キーで選択するのが大変(数字で選択するのも)なので、fzfで曖昧検索で選択できるようにしました。ただshellでコマンドを打つのはvimの操作中や何かのダウンロード中はできない(一手間いる)ので、tmuxのキー操作(prefix + なにか)から呼び出せるようにしました。

※追記
tmuxのプラグイン作りました!
https://github.com/hokita/tmux-session-fzf

やったこと

  • tmuxのsessionをfzf(詳しくはfzf-tmux)で選択できるようにするshell scriptを作成する。
  • tmuxのキーバインドにshell scriptを割り当てる。

作業

事前作業

作成したshell scriptをどこでも呼べるようにしたいので、スクリプトを置くディレクトリを作成し、パスを通しておきます。※既にあるかたは読み飛ばしてください。

# 今回はHOME配下にbinディレクトリを作成
$ mkdir ~/bin

下記をお使いのshellの設定ファイル(.bashrcもしくは.zshrcなど)に追加。 

export PATH=$HOME/bin:$PATH

設定ファイルを再読込

# .zshrcの場合
$ source ~/.zshrc

shell script作成

PATHの通ったディレクトリに下記を作成する。

~/bin/tmux-session-fzf
#!/bin/bash

if [ -n "$TMUX" ]; then
  SELECTED="$(tmux list-sessions | fzf-tmux | cut -d : -f 1)"
  if [ -n "$SELECTED" ]; then
    tmux switch -t $SELECTED
  fi
fi

実行権限を付与する。

$ chmod 755 ~/bin/tmux-session-fzf

実行できるか確認

$ tmux-session-fzf

新しいウィンドウにfzfでのsession選択画面が表示されるようになったかと思います。

ポイント

fzf-tmuxを使用しましたが、fzfもしくはpecoでもshellコマンド上だと動きます。が、tmuxのキーバインドからだと動作しないのでfzf-tmuxを使用しております。

tmuxのキーバインドにスクリプトを登録

※追記:tmux3.0以上ではrunだけだとフリーズするようになったので、-bのオプションを付与する

~/.tmux.conf
# 今回はprefix + y に登録。
bind y run -b tmux-session-fzf

以上です。prefix + yでsession選択のfzf画面を呼べるかと思います。

参考サイト

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?