Created
October 7, 2014 02:32
-
-
Save lamanotrama/f281350e604c9ab3a1df to your computer and use it in GitHub Desktop.
tmux auto rename window
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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 | |
## }}} | |
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"
ほほー。あとから試してみる。
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
ちなににsshのとき新しいwindowたててrenmaeすんのは、よく落ちてるけど、自分の場合こうなった。