나는 최근 터미널 시청의 즐거움을 위해 약간의 태양 색을 수용하기 위해 PS1 변수를 변경하기로 결정했습니다. tmux 세션에 있지 않으면 모든 것이 훌륭합니다! 무지개, 조랑말, 유니콘 및 독특한 프롬프트! 멋있는!
그러나 문제는 tmux에 있습니다. PS1의 가치가 내가 기대하는 것과 tmux가 실행되지 않을 때와 같은지 확인했습니다 \[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]
.
.bash_profile의 모든 별칭 등도 예상대로 작동합니다. tmux는 echo -ne "\033[1;33m hi"
예상대로 동작하는 것처럼 색상을 사고없이 표시합니다 gls --color
.
내 .bash_profile의 현재 관련 줄은 export PS1="\[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]"
원래 .bash_prompt 파일에있는 스크립트를 일부 조건부 등을 처리하기 위해 소싱하고 있었지만 더 간단한 버전으로 되돌리려 고했습니다.
실행 bash
하면 프롬프트가 색상으로 표시되지만 각 창에서 수행해야합니다. export PS1=[that long string I've already posted]
하지 않을 것이다.
내 .tmux.conf는 다음과 같습니다.
set-option -g default-command "reattach-to-user-namespace -l /usr/local/bin/bash"
set -g default-terminal "xterm-256color"
set-window-option -g automatic-rename on
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
.bash_profile의 관련 부분 :
export TERM="xterm-256color"
if which tmux >/dev/null 2>&1; then
test -z "$TMUX" && (tmux attach || tmux new-session)
fi
나는 macOS Sierra, iTerm 2를 사용하고 있습니다. 현재 홈 브루 버전의 bash와 시스템 bash (현재 홈 브루를 사용하고 있습니다), tmux 2.4를 모두 시도했습니다.
또한 touch testing_touch_from_bash_profile
두 개의 창이있는 tmux 세션에서 내 .bash_profile에 배치 하고 하나의 창을 종료하고 창을 열어 파일이 실제로 생성되었는지 확인했습니다.
echo $TERM
을 반환합니다 xterm-256color
.
tmux를 종료 할 때 설정 변경을 테스트하기 위해 tmux를 종료했으며 tmux를 통해 시스템에서 현재 실행중인 tmux 프로세스가 없는지 확인했습니다 ps -ax | grep tmux
.
이상하게도 .bash_prompt 스크립트를 소싱하면 각 tmux 창 내에서 색상을 변경하는 한 색상도 변경됩니다.
/programming/21005966/tmux-prompt-not-following-normal-bash-prompt-ps1-w를 보고 첫 번째 줄에서 bash 호출 후 --login 플래그를 추가하려고했습니다. 내 .tmux.conf의. tmux with tmux new bash
를 시작 하면 첫 번째 창이 색상 화되지만 이후의 창이 나타나지 않습니다.
$ PS1 변수는 필드 색상 지정을 제외한 모든 측면에 적용됩니다.
누구든지 아이디어가 있습니까?
PS1
게시 한 설정에 색상을 변경하라는 명령이 없습니다. tmux 외부에서 작동하는 실제 설정을 게시하십시오. 또한 PS1
in in .bashrc
이 아닌에 설정해야합니다 .bash_profile
. .bash_profile
전혀 실행되지 않을 수 있으며 나중에 설정이 재정의 될 수 있습니다.