tmux PS1 प्रॉम्प्ट को रंगीन नहीं कर रहा है


11

मैंने हाल ही में अपने पीएस 1 चर को बदलने का फैसला किया है ताकि मेरे टर्मिनल देखने के आनंद के लिए कुछ सुंदर सौर रंगों को समायोजित किया जा सके। जब 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 सिएरा, iTerm 2 का उपयोग कर रहा हूं, मैंने बैश के वर्तमान होमब्रेव संस्करण और सिस्टम बैश (यह वर्तमान में होमब्रे का उपयोग कर रहा है), 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 झंडा जोड़ने की कोशिश की है मेरे .tmux.conf की Tmux के साथ लॉन्च tmux new bashकरने से पहला फलक रंगित हो जाएगा, लेकिन बाद में पैन नहीं होंगे।

$ PS1 चर को किसी भी क्षेत्र को रंग देने के अलावा सभी पहलुओं के लिए सम्मानित किया जा रहा है।

क्या किसी के भी पास कोई सुझाव है?


एकल उद्धरण का प्रयास करें
केविन

5
PS1आपके द्वारा पोस्ट की गई सेटिंग में रंग बदलने के लिए कोई कमांड नहीं है। एक वास्तविक सेटिंग पोस्ट करें जो tmux के बाहर काम करती है। इसके अलावा, आप स्थापित करना चाहिए PS1में .bashrcनहीं है, .bash_profile: .bash_profileसब पर निष्पादित हो नहीं हो सकता है, और सेटिंग्स बाद में ओवरराइड हो सकता है।
गिल्स एसओ- बुराई को रोकना '

जवाबों:


3

आपका 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 एक बैश फ़ंक्शन है जो मेरे पास है:

git_branch () { 
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}

तुम्हारा बनाम मेरा:

यहां छवि विवरण दर्ज करें

यह OSX और Ubuntu पर समान काम करता है


11

मेरी इस समस्या का समाधान सेटिंग था

force_color_prompt=yes

मेरे में .bashrc। अब मेरे tmux प्रॉम्प्ट में रंग है।


यह सुनिश्चित नहीं है कि यह इसके बाहर से tmux में अलग-अलग व्यवहार क्यों करता है, लेकिन इसने मेरे लिए भी चाल चली।
मैट लेसी

मुझे लगता है कि आपको यह निर्दिष्ट करना चाहिए: आपको जो करना है वह कमांड को चलाने के लिए है tmux, और फिर tmux सेशन रन के अंदर source ~/.bashrc। आपको प्रत्येक पैनल में ऐसा करने की आवश्यकता है।
evaristegd

धन्यवाद, मेरे लिए यह काम उबंटू 18.04 ग्नोम-टर्मिनल पर भी है।
intijk

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.