2013-05-18 60 views
11

私はTMUXに新しいですし、私は、ステータスバーの左側を持っている私のtmux.confファイルを編集しようとしていますが反映:Tmux:ペインの現在の作業ディレクトリをステータスバーに表示するようにtmuxを設定する方法は?

[SessionName] [CurrentPane] [CurrentWorkingDirectory]

私はSessionNameCurrentPaneを表示することができています。しかし、私はCurrentWorkingDirectoryを表示することができません。

私はいくつかの#(shell command)オプション試してみた:

  1. #(tmux select-pane -t :.#P; pwd): をしかし、これはませを行い、いくつかの他の$ PWDの変数を出力するには、現在のペインで、bashのセッションの カレントディレクトリを反映しています。まず

  2. #(tmux select-pane -t :.#P; tmux send-keys pwd Enter)

    、それは私がターミナルに だ場合CurrentWorkingDirectoryを印刷しなかったが。これは端末でこれを印刷し、ではなくの状態で バーに印刷します。第二に、それは 秒ごとに "pwd Enter"を入力しました。私が端末にいたかどうかは、 への面倒でした。

私はこれらのオプションを試しましたが、役に立たなかったので、私がしたいことはできますか?そしてどうやって?

答えて

15

そのための変数がありますが、これはマンページにはないようですが、開発用バージョンに記載されています。私にとっては、1.8リリースのtmuxで動作します。

set -g status-left "#{pane_current_path}" 

ウィンドウステータスにすると動作します。各ウィンドウのステータスには、それぞれの作業ディレクトリが表示されます。 /etc/tmux.conf

ここ
setw -g window-status-current-format "#T(#I:#W#F)" 
setw -g window-status-format "#T(#I:#W#F)" 

#TのopenSUSE 12.3 "正式版" を、私は解決策を見つけるために管理 -

setw -g window-status-format "#{pane_current_path}". 
+0

これは、新しいペインが作成されたときにのみペインの名前を変更します –

4

私はbashでこれを行う方法がわかりませんが、zshではすべてのコマンドの前に実行されるフックがあります。あなたの.zshrcに:

precmd() { 
    tmux set -qg status-left "#S #P $(pwd)" 
} 

これは、このコマンドを実行することtmuxコマンド毎回を実行します。お役に立てれば。 bashにはprecmdが含まれていないため、これを行う方法がわかりません。

+0

ありがとうございました。私はLinuxの初心者で、bashで学び始めたので、本当に必要がなければ、zshに切り替えることは望ましくありません。したがって、私がbashのためのソリューションを好む理由。 – rajames

+0

しかし、私は[Glyph Lefkowitz](http://glyf.livejournal.com/63106.html)のトリックを使ってbashでprecmdを実行する方法を見つけました。 解決策が見つかりました[ここ](http://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-before-executing-a-command)。ありがとう! – rajames

3

残念ながら、提案された解決策は、バージョン1.7には機能しません。 - 現在のペインのタイトルを表示するように指示します。これはエスケープシーケンスで設定できます。各シェルコマンドでこれを行うために、.bashrcのどこか を置く:これはopenSUSEの12.3に私の作品

[[ -n "$TMUX" ]] && PROMPT_COMMAND='echo -n -e "\e]2;${PWD/${HOME}/~}\e\\"' 

は、bashの4.2.53を1.7にtmuxは。

+0

うまくいかないようです: '-bash:[[-n:コマンドが見つかりませんでした] – xApple

+0

はい、もちろんです!スペースは、[[と前]]の後に必要です。テストの後、ターミナルウィンドウから行をコピーし、表示するときにこのスペースが消えたことに気付かなかった。 – avb1003