Skip to content

Instantly share code, notes, and snippets.

@lamanotrama
Created October 7, 2014 02:32
Show Gist options
  • Save lamanotrama/f281350e604c9ab3a1df to your computer and use it in GitHub Desktop.
Save lamanotrama/f281350e604c9ab3a1df to your computer and use it in GitHub Desktop.
tmux auto rename window
## rename window to repo-name {{{
# http://blog.manaten.net/entry/tmux-repository
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git svn
zstyle ':vcs_info:*' formats '%r'
rename_tmux_window() {
[ -n "$TMUX" ] || return
LANG=en_US.UTF-8 vcs_info
if [[ -n "${vcs_info_msg_0_}" ]]; then
tmux rename-window "repo/$vcs_info_msg_0_"
else
tmux rename-window "osx"
fi
}
autoload -U add-zsh-hook
add-zsh-hook chpwd rename_tmux_window
if [ -n "$TMUX" ]; then
rename_tmux_window
fi
## }}}
@buty4649
Copy link

buty4649 commented Oct 7, 2014

tmuxでsnippetを流し込む便利なやつ
元ネタ: http://blog.glidenote.com/blog/2014/06/26/snippets-peco-percol/
これだと、一旦クリップボード経由になるのでちょっと面倒なので、tmux経由で流し込む。

まず、↓のようなスクリプトをてきとーに配置

#!/bin/bash
# tmux-snippet.sh

if [ -z "$1" -o -z "$2" ];
then
    TMUX_WINDOW=$(tmux list-window | awk '/(active)/{print $(NF-1)}')
    TMPFILE=$(mktemp /tmp/.tmux-snippets.XXXX)

    tmux new-window -n "snippets" "cat $HOME/.snippets | peco > $TMPFILE;$0 $TMUX_WINDOW $TMPFILE"
else
    tmux send-key -t $1 "$(cat $2)"
    rm -f $2
fi

↓をtmux.confに追加。bindをおこのみで

bind-key C-s run-shell "tmux-snippets.sh"

@lamanotrama
Copy link
Author

ほほー。あとから試してみる。

@hfm
Copy link

hfm commented Oct 7, 2014

formats既に使ってしまってたので,以下のように設定してみた

rename_tmux_window() {
    if [ -d .git ]; then
        current_dir=${PWD##/*/}
        upper_dir=${${PWD%/*}##/*/}
        tmux rename-window "${upper_dir}/${current_dir}"
    else
        tmux rename-window $(uname -n)
    fi
}
[ -n "$TMUX" ] && rename_tmux_window
autoload -U add-zsh-hook
add-zsh-hook chpwd rename_tmux_window

window名を親ディレクトリ/現ディレクトリにしたかったので,当面はこれでいいや...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment