tmux가 시작 시 메시지를 표시하지 않는 문제를 해결하는 방법은 무엇입니까?

tmux가 시작 시 메시지를 표시하지 않는 문제를 해결하는 방법은 무엇입니까?

.tmux.conf내 파일에는 디렉터리가 있는지 확인하고 디렉터리가 없으면 메시지를 표시하는 명령이 있습니다 . 다른 명령은 쉘 스크립트를 실행하려고 합니다.

문서:~/.tmux.conf

# do a check and display message if non-zero exit
if-shell "! [-d $HOME/.tmux]" 'display-message "tmux plugins are not installed"'

# try run a shell script
run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux

문제는 tmux가 시작 중에 생성된 메시지를 표시하지 않는다는 것입니다. 이는 진단 오류와 경고가 생성될 것으로 예상되는 때입니다.

tmux를 시작하면 tmux의 호출기에 오류 메시지가 나타납니다.

(null):0: no current session 

분명히 메시지를 받는 것을 좋아하지 않습니다.

source-file ~/.tmux-conftmux 세션에서 동일한 명령을 실행하면 모든 메시지가 성공적으로 보고됩니다. 시작 중에 tmux 보고 메시지를 만들려면 어떻게 해야 합니까?

답변1

나는 이것이 오래되었다는 것을 알고 있지만 일종의 시작 메시지를 표시하는 데 관심이 있었고 이 문제에 직면했습니다. 몇 가지 검색 끝에 마침내 tmux 후크를 찾았습니다.(tmux 2.2에서 내부적으로 도입됨)일회성 시작 메시지를 표시하도록 구성할 수 있습니다(자세히 알아보기)여기).

session-created이 후크를 사용하여 새 세션에서 tmux 명령을 실행할 수 있습니다 . display-message -p "message"새로 생성된 창에 직접 메시지를 출력합니다. 따라서 다음과 같은 메시지를 표시할 수 있습니다.

MESSAGE='display-message -p "tmux plugins are not installed" ; \
         display-message -p "please press Leader + I to install" ; \
         set-hook -gu session-created ;'
if-shell "[ ! -d $HOME/.tmux ]" 'set-hook -g session-created ${MESSAGE}'

set-hook -gu session-created이 메시지가 다음에만 표시되도록 이 후크 등록을 취소합니다 .첫 번째모든 후속 세션이 아닌 세션이 생성되었습니다.

답변2

다음과 같이 명령줄에서 작동했습니다.

tmux new-session \; if-shell "! [-d $HOME/.tmux]" 'display-message "tmux plugins are not installed"'

관련 정보