근무 환경:

근무 환경:

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

단말기

멀티플렉서

  • 멀티플렉서 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같은 방법으로.

추가 자료:

관련 정보