나는 최근 터미널 시청의 즐거움을 위해 약간의 태양 색을 수용하기 위해 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은 또한 흑백 출력을 제공합니다.
그러나 다시 광산으로 전환하면 색상이 생겨서 다른 것을 알아낼 수 있어야합니다.
$ echo $PS1
\[\033[01;31m\]\t \[\033[01;32m\]durrantm \[\033[02;36m\]\h \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"` \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$
git_branch는 내가 가진 bash 함수입니다.
git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}
당신 대 광산 :
이것은 OSX와 Ubuntu에서 동일하게 작동합니다.
답변
이 문제에 대한 나의 해결책은 설정이었습니다.
force_color_prompt=yes
내 .bashrc
. 이제 tmux 프롬프트에 색상이 있습니다.
답변
내 컴퓨터에서 해결책은
set -g default-terminal "xterm-256color"
에 ~/.tmux.conf
.