เมื่อเร็ว ๆ นี้ฉันตัดสินใจที่จะเปลี่ยนตัวแปร PS1 ของฉันเพื่อรองรับสี Solarized ที่สวยงามเพื่อความเพลิดเพลินในการรับชมเครื่อง เมื่อไม่ได้อยู่ในเซสชั่น 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 ฉันได้ลองทั้งรุ่น homebrew ปัจจุบันของ bash และ system bash (ปัจจุบันใช้ homebrew), tmux 2.4
ฉันยังวางไว้touch testing_touch_from_bash_profile
ใน. bash_profile ของฉันในขณะที่อยู่ในเซสชั่น tmux ที่มีสองบานหน้าต่างฆ่าหนึ่งบานเปิดบานหน้าต่างและตรวจสอบว่าไฟล์นั้นถูกสร้างขึ้นจริง
echo $TERM
xterm-256color
ผลตอบแทน
ฉันมั่นใจว่าเมื่อออกจาก tmux การตั้งค่าการทดสอบการเปลี่ยนแปลงที่ฉันได้เดินออกมาจาก tmux และไม่มีกระบวนการ tmux ps -ax | grep tmux
กำลังทำงานอยู่บนระบบผ่านทาง
น่าแปลกที่การจัดหาสคริปต์. bash_prompt เปลี่ยนสีตราบใดที่ฉันทำในแต่ละบานหน้าต่าง tmux
ฉันดูที่/programming/21005966/tmux-prompt-not-following-normal-bash-prompt-ps1-wแล้วลองเพิ่มการตั้งค่าสถานะ --login หลังจากการเรียก bash ในบรรทัดแรก ของ. tmux.conf ของฉัน การเรียกใช้ tmux ด้วยtmux new bash
จะทำให้บานหน้าต่างแรกเปลี่ยนสี แต่บานหน้าต่างถัดไปจะไม่
ตัวแปร $ PS1 ได้รับการยกย่องในทุก ๆ ด้านยกเว้นการเปลี่ยนสีฟิลด์ใด ๆ
ใครมีความคิดเห็นบ้าง
PS1
ตั้งค่าที่คุณโพสต์ไม่มีคำสั่งให้เปลี่ยนสี โพสต์การตั้งค่าจริงที่ทำงานนอก tmux นอกจากนี้คุณควรตั้งค่าPS1
ใน.bashrc
ไม่ใช่ใน.bash_profile
: .bash_profile
อาจไม่ถูกดำเนินการเลยและการตั้งค่าอาจถูกแทนที่ในภายหลัง