tmux 2.1의 상태 표시줄에 문제가 있습니다. 설명서에 설명된 대로 ~/.tmux.conf에 다음과 같이 작성합니다.
set -g status-right "#(/bin/pwd) %R %d/%m/%g"
set -g status-interval 1
tmux를 시작한 후 상태 표시줄은 /home/conformist입니다. 그러나 cd /와 같이 cwd를 변경하면 상태 표시줄은 여전히 $HOME입니다.
conf를 다음으로 변경하면:
set -g status-right "#{pane_current_path} %R %d/%m/%g"
상태 표시줄에서 ~와 같은 $HOME을 보고 싶지만 pwd가 변경되지 않기 때문에 그렇게 할 수 없습니다(그리고 pwd | perl -pne s-$HOME-~-도 작동하지 않습니다).
답변1
근무 환경:
운영 체제
- 운영 체제 10.14.5
단말기
- 기뻐하라 0.3.3 -https://github.com/jwilm/alacrtty
- iTerm2 3.2.9 -https://iterm2.com/
- 애플 터미널 2.9.5
멀티플렉서
- 멀티플렉서 2.9a
상태 오른쪽에 있는 필드의 예
~/.tmux.config
제공된 예제에서 외부 bash 스크립트를 호출하기 위한 파일은 다음 위치에 있습니다.~/.tmux_path.sh
~/.tmux.config
set -g status-interval 1
set -g status-right-length 150
set -g status-right "#(~/.tmux_path.sh #{pane_current_path}) %Y-%m-%d %H:%M:%S"
예시 bash 스크립트는 #{pane_current_path) arg를 읽습니다. basename
시작 경로를 자르고 현재 경로만 표시합니다. 창 ID로 사용하면 괜찮습니다. 참고: 이는 사람들이 원하는 결과에 맞게 $HOME = /home/user
조정해야 할 수도 있다고 가정합니다.-f-1,4-
~/.tmux_path.sh
#!/bin/sh
printf '\033%s\007' $(echo "$1" | awk '{print "~"$1}' | cut -d/ -f-1,4-)
스크립트를 실행 가능하게 만들기
chmod +x ~/.tmux_path.sh
창 이름 지정 예
- 참고:
~/.tmux_path.sh
위와 동일한 콘텐츠를 사용하세요.
~/.tmux.conf
set -g status-interval 1
set -g window-status-current-format "[#[fg=white] #(~/.tmux_path.sh #{pane_current_path})]"
set -g window-status-format "#[fg=black] #(~/.tmux_path.sh #{pane_current_path})"
답변2
/bin/pwd
프로그램이 동일한 프로세스에 의해 실행되기 때문에 호출이 작동하지 않습니다.아니요당신의 껍질). 를 사용하는 경우 예에 표시된 이스케이프 시퀀스를 사용하여 창 이름을 변경하기 위해 bash
이스케이프 시퀀스를 보내도록 프롬프트를 수정할 수 있습니다 .tmux
printf '\033kWINDOW_NAME\033\\'
다음은 이스케이프 시퀀스를 보여주는 별도의 쉘 스크립트입니다.
#!/bin/sh
printf '\033k%s\033\\' $(pwd)
xterm 헤더가 사용하는 것과는 다른 이스케이프 시퀀스이지만 다음 제안을 적용할 수 있습니다.Bash 프롬프트 HOWTO같은 방법으로.
추가 자료: