배경
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
내 top 에서 현재(논리적) 경로를 가져오려고 했습니다 ~/.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더 많은 정보를 알고 싶습니다.