वातावरण:
- फेडोरा 25 (4.9.12-200.fc25.x86_64)
- GNOME टर्मिनल 3.22.1 VTE संस्करण 0.46.1 + GNUTLS का उपयोग करना
- VIM - Vi IMproved 8.0 (2016 सितम्बर 12, संकलित फ़रवरी 22 2017 16:26:11)
- tmux 2.2
मैंने हाल ही में tmux का उपयोग करना शुरू किया है और देखा है कि विम के भीतर के रंग इस आधार पर बदलते हैं कि मैं tmux के अंदर या बाहर चल रहा हूँ। नीचे Git का अंतर देखते हुए Vm के बाहर (बाएं) और tmux के अंदर (दाएं) के स्क्रीनशॉट हैं:
मेरा TERM
चर है
- बाहर tmux:
xterm-256color
- अंदर tmux:
screen-256color
विम ने इन टर्मिनल प्रकारों की अपेक्षा के अनुसार रिपोर्ट की :set term?
:
- बाहर tmux:
term=xterm-256color
- अंदर tmux:
term=screen-256color
विम भी रिपोर्ट करता है कि दोनों उदाहरण 256-रंग मोड में चल रहे हैं (के माध्यम से :set t_Co?
):
- बाहर tmux:
t_Co=256
- अंदर tmux:
t_Co=256
टीएमसी के अंदर 256-रंग मोड में चलने के लिए विम को प्राप्त करने के बारे में कई समान प्रश्न हैं (मुझे जो सबसे अच्छा उत्तर यहां मिला है ), लेकिन मुझे नहीं लगता कि मेरी समस्या को उपरोक्त जानकारी दी गई है।
अगर मैं विम को टर्मिनल प्रकार के साथ सेट करता हूं, तो मैं tmux के बाहर समस्या का डुप्लिकेट कर सकता हूं screen-256color
:
$ TERM=screen-256color vim
इसलिए मुझे लगता है कि रंग में अंतर का कारण बनता है xterm-256color
और screen-256color
टर्मिनल क्षमताओं के बीच बस कुछ अंतर है । जो शीर्षक में सामने आए प्रश्न की ओर जाता है: विशेष रूप से टर्मिनल क्षमताओं में विम रंगों के अलग होने का क्या कारण है? मुझे :set termcap
tmux के अंदर और बाहर चलने के बीच अंतर दिखाई देता है , लेकिन मैं उत्सुक हूँ कि कौन से चर वास्तव में व्यवहार में अंतर का कारण बनते हैं।
पिछले प्रश्न से स्वतंत्र, क्या यह संभव है कि विम रंगों को tmux के अंदर या बाहर चलाते समय संगत होना चाहिए? कुछ चीजें मैंने कोशिश की हैं:
- स्पष्ट रूप में डिफ़ॉल्ट टर्मिनल tmux का उपयोग करता है की स्थापना
~/.tmux.conf
विभिन्न मूल्यों (tmux की सलाह के खिलाफ कुछ करने के लिए पूछे जाने वाले प्रश्न ):
सेट-डिफॉल्ट टर्मिनल "स्क्रीन -255 kcolor" सेट-डिफ़ॉल्ट डिफ़ॉल्ट टर्मिनल "xterm-256color" सेट-डिफॉल्ट टर्मिनल "screen.xterm-256color" सेट-डिफॉल्ट टर्मिनल "tmux-256color"
- Tmux का उपयोग करना शुरू करना
tmux -2
।
सभी मामलों में, विम ने tmux के अंदर अलग-अलग रंगों का प्रदर्शन जारी रखा।
xterm-256color
संस्करण में 256-रंग से बच दृश्यों को देख सकता हूं (फ़ाइल में "38; 5;" के लिए खोज), लेकिन में नहीं कर सकता screen-256color
। उदाहरण के लिए जहाँ कहीं भी है एक \e[38;5;81m
में xterm-256color
(रंग # 256 रंग पैलेट के 81, एक मध्यम नीले छाया), screen-256color
शामिल \e[34m
बजाय (8-रंग पैलेट के मानक नीला)। तो मुख्य सवाल यह है कि विम के मामले में 256 रंगों वाले पैलेट का उपयोग क्यों नहीं किया जाता है TERM=screen-256color
।
xterm-256color
संस्करण दो बार स्क्रीन को प्रिंट करने के लिए लगता है, पहले विरासत रंगों के साथ और फिर 256-रंग पैलेट के साथ। फ़ाइल में उदाहरण के लिए "एफ 1" खोजें, आपको दो मैच मिलेंगे xterm-256color
, पहला \e[34m
रंग के साथ , दूसरा साथ \e[38;5;81m
। मुझे नहीं पता कि यहाँ क्या हो रहा है।
set -g default-terminal "screen.xterm-256color"
में ~/.tmux.conf
और tmux में config को फिर से लोड (<सी>: स्रोत-फ़ाइल ~ / .tmux.conf) मेरे (मुख्य आकर्षण मुद्दा) के लिए काम किया। thx
script
, प्रारंभvim
, छोड़नाvim
और फिर छोड़नाscript
खोल सकते हैं, और परिणामीtypescript
फ़ाइल संलग्न कर सकते हैं ? फिरTERM=screen-256color vim
इसके बजाय उसी चरणों को दोहराएं ।