背景
VirtualBoxでtmux 2.0、Ubuntu 14.04.2 LTSを使用しています。
tmuxが現在のウィンドウと同じパスで新しいウィンドウを開くようにするために、ファイルに~/.tmux.conf
次の行を追加しました。
bind c new-window -c "#{pane_current_path}"
cd
tmuxから自宅からサブディレクトリに移動した場合シンボリックリンク経由を選択して確認すると、次の結果が得pwd
られますpwd -P
。
~$ cd pythons
~/pythons$ # An awesome prompt
~/pythons$ pwd # According to "man pwd" this shows the "logical" path
/home/qiime/pythons
~/pythons$ pwd -P # and this shows the "physical" path
/media/sf_Google_Drive/Home/Programs/Pythons
問題は
開けたら新しいtmux ウィンドウが~/pythons
新しい bash プロンプトに表示されます。物理跡:
/media/sf_Google_Drive/Home/Programs/Pythons$ # Not an awesome prompt
尋ねる:はい、そうでした。正しいディレクトリ...しかし、tmuxにbashを起動させる方法はありますか?論理的成熟した道ではない道物理跡?
それとも.bashrc
これを達成するために何かを追加できますか?
編集する:
この問題を引き起こす構成設定があるかどうかを確認するために、以下を除くすべての行を~/.tmux.conf
コメントアウトしてみました。
bind c new-window -c "#{pane_current_path}"
しかし、私はまだ完全な物理パスを取得します。また、echo
私のトップから現在の(論理的)パスを取得しようとしました~/.bashrc
。残念ながら、これは新しいウィンドウの物理パスになったように見える親ウィンドウの醜い物理パスを反映しています。そして論理パス。したがって、tmux 2.0はこれを次の方法で新しいbashインスタンスに渡す必要があります。"#{pane_current_path}"
また、最近発生したtmuxの問題を発見しました。Pane_current_pathがPaneのPWD#33と一致しません。この動作が tmux コードで発生することを示します。
尋ねる:もしそうなら、私の質問は「解決策はありますか?」です。
答え1
次は私のために働いた。
~/.bashrc
次の行を追加します。
PS1='$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD)\u@\H:\w$ '
~/.tmux.conf
次の行を追加します。
bind-key c run-shell 'tmux neww "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
bind-key % run-shell 'tmux splitw -h "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
bind-key '"' run-shell 'tmux splitw -v "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
tmuxを再起動してください。
源泉
「現在のウィンドウと同じディレクトリで新しいウィンドウを開くにはどうすればよいですか?」セクションを参照してください。存在するhttp://tmux.svn.sourceforge.net/viewvc/tmux/trunk/FAQ。
'\u@\H:\w$ '
bashプロンプト全体を正しく表示するには、.bashrc行の末尾にある文字を上記のリンクの元の文字から変更する必要があります。バラよりhttp://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.htmlより多くの情報を知りたいです。