पिछले 80 पात्रों में विम में एक अलग पृष्ठभूमि का रंग दिखा


134

मैंने विम 80 कॉलम लेआउट चिंताओं को देखा है , लेकिन वहां का उत्तर केवल वास्तविक सामग्री को हाइलाइट करता है जो 80 चरित्र के निशान पर जाता है। मैं चाहता हूं कि सामान्य पृष्ठभूमि और कुछ अतीत का उपयोग करने वाले कुछ भी सबसे पुराने 80 कॉलम के साथ एक 100+ कॉलम विम विंडो खुली हो। विम विंडो बैकग्राउंड एक अलग रंग होना चाहिए, न कि केवल टेक्स्ट जो कि 80 कैरेक्टर पॉइंट पर जाता है। यह इंगित करता है कि मैं 80-चार बिंदुओं के करीब पहुंच रहा हूं, पहले इस पर जाने के बिना।

मुझे नहीं लगता कि यह वर्तमान में संभव है, लेकिन मुझे लगा कि मैं सिर्फ मामले में पूछूंगा।

शायद यह एक प्लगइन के साथ किया जा सकता है?

वांछित विम राइट मार्जिन हाइलाइटिंग का TextMate उदाहरण

TextMate की सामान्य प्राथमिकताओं में "हाइलाइट राइट मार्जिन" का चयन करके, आप वांछित विम व्यवहार का एक उदाहरण देख सकते हैं।

TextMate राइट मार्जिन हाइलाइटेड उदाहरण


जवाबों:


223

यदि आपके पास Vim> = v7.3 है, तो आप इसे .vimrc81 और आगे की ओर हाइलाइट करने के लिए इसे जोड़ सकते हैं (इसलिए 80 आपका अंतिम वैध कॉलम है):

let &colorcolumn=join(range(81,999),",")

यदि आपको कोई हाइलाइट दिखाई नहीं देता है, तो आपके पास ColorColumnहाइलाइट रंग सेट नहीं हो सकता है । इसे जोड़ें (अपनी प्राथमिकताओं के अनुसार समायोजित करें):

highlight ColorColumn ctermbg=235 guibg=#2c2d27

अब मैं कॉलम 80 के साथ-साथ 120 और उसके बाद को हाइलाइट करना पसंद करता हूं, इसलिए मेरे पास "चेतावनी" और "खतरे" मार्कर अलग हैं। आप ऐसा कर सकते हैं:

let &colorcolumn="80,".join(range(120,999),",")

उदाहरण

यहाँ GVim संपादन मेरा का एक स्क्रीनशॉट है .vimrc

GVim संपादन मेरे .vimrc

मैं उबंटू मोनो 11 फ़ॉन्ट और मोलोकाई रंग योजना का उपयोग करता हूं । GitHub पर आप मेरे vim config और मेरे सभी dotfiles पा सकते हैं ।


3
colorcolumn 256 परिभाषाओं तक सीमित है, प्रति :help colorcolumn... इसके अलावा, मेरी सेटिंग आपकी जॉइन तकनीक का उपयोग करते समय कुछ लंबाई में छंटनी की जाती है, हालांकि मुझे यह पता लगाने के लिए विम के स्रोत के माध्यम से खोज करने का आश्वासन नहीं दिया जा सकता है कि वह लंबाई क्या है। इसके अलावा, विम इस सेटिंग के मूल्य को एक स्ट्रिंग के रूप में हर बार विंडो में प्रवेश करते समय, बफर को इनिशियलाइज़ करता है, आदि, इसलिए यह वांछित परिणाम प्राप्त करने का एक महंगा तरीका है।
cptstubing06

15
आपकी डॉटफाइल्स HOT हैं।
obfk

1
यह पोस्ट करने के लिए धन्यवाद, वास्तव में मैं क्या देख रहा था! बस एक और सवाल, क्या इस नियम को एक विशिष्ट प्रकार की फ़ाइल (.md) पर सेट नहीं करने का कोई तरीका है?
डेविड डायस

1
@DavidDias ज़रूर! आप autocmd FileType markdown let &colorcolumn=""इसे पूरी तरह से परेशान करने के लिए कुछ कर सकते हैं ।
जस्टिन फोर्स


78

81 कॉलम हाइलाइट करें

:set textwidth=80
:set colorcolumn=+1

आप कुछ स्टाइल भी बना सकते हैं:

:hi ColorColumn guibg=#2d2d2d ctermbg=246

2
यह, और यह 256 कॉलम तक हाइलाइट करने के लिए भी संभव है, लेकिन दुर्भाग्य से यह हाइलाइट करने के लिए कॉलम की एक सूची लेता है और इसके लिए कोई शॉर्टहैंड नहीं है, इसलिए आप :set colorcolumn=+1,+2,+3,+4,+5,+6वगैरह जैसे कुछ करना चाहते हैं, संभवतः सभी तरह से +256व्यापक रूप से आपको लगता है कि आप अपना सही मार्जिन चाहते हैं। हालांकि यह केवल उन लाइनों को उजागर करेगा जो बफर में मौजूद हैं, विंडो में सभी लाइनें नहीं।
mkomitee

1
@ डिस्लेक्सिक स्पर्शरेखा: इसके बजाय पहले 80 स्तंभों को उजागर क्यों नहीं किया?
ब्राइस

1
मैंने ऐसा नहीं सोचा था। अपनी पृष्ठभूमि को उस रंग में सेट करें जिसका आप उपयोग करना चाहते हैं> 80 कॉलम, और 1-80 से सभी स्तंभों के लिए colorcolumn सेट करें, और colorcolumn के लिए हाइलाइट समूह को वह रंग सेट करें जो आप चाहते हैं कि आपकी सामान्य पृष्ठभूमि हो।
mkomitee

2
एक प्रश्न, जबकि मैं रंग ठीक से सेट कर सकता हूं, :hi colorcolumn ...जब मैं इसे अपने .vimrc में रखता हूं तो यह काम नहीं करता है। क्या आप जानते हैं कि कैसे करना है?
रॉबब्रिट

मैं एक ही मुद्दे को रॉबब्रिट के रूप में देख रहा हूं - अगर मैं हाइलाइट कमांड को एक्स मोड में चलाता हूं, तो यह अच्छा लगता है, लेकिन अगर मेरे पास यह मेरी vimrc फाइल में है, तो यह मेरे
colorcheme

16

समाधान ऊपर टिप्पणी में प्रस्तावित है। पहले अपनी पृष्ठभूमि को हाइलाइट करें फिर ओवरले के रूप में ColorColumn ब्लैक को हाइलाइट करें। 1-80 लाइनों के लिए अपने colorcolumn सेट करें।

hi Normal guibg=#32322f ctermbg=236
hi NonText guibg=#32322f ctermbg=236
hi ColorColumn guibg=#000000 ctermbg=0
let &colorcolumn=join(range(1,80),",")

1
यह सरल अभी तक शानदार है। धन्यवाद!
हवाई यात्रा

8

प्रयत्न:

:/\%>80v./+

यह त्रुटि के रूप में +80 वर्णों को चिह्नित करेगा


तो चुटकी में होशियार। मुझे यह पसंद है क्योंकि यह विषय परिवर्तनों के लिए अनुकूल है। धन्यवाद।
बेंजामिन

0

मुझे नहीं लगता कि यह संभव है कि आप क्या चाहते हैं, लेकिन मैं इस सवाल का अनुसरण कर रहा हूं क्योंकि मैं खुद ऐसी चीज में दिलचस्पी रखता हूं।

हो सकता है, मैं स्पष्ट कह रहा हूं, लेकिन आप 70 वें + कॉलम में हाईलिथ को सेटअप कर सकते हैं कि आप इस बात का संकेत प्राप्त कर सकते हैं कि आप 80 वें कॉलम के कितने करीब हैं।


0

मेरे जैसे onedark.vim का उपयोग करने वालों के लिए, जो कि Conner द्वारा पोस्ट किया गया समाधान चाहता है, मैंने इन पंक्तियों को अपनी vimboard फ़ाइल में जोड़ा

let &colorcolumn=join(range(1,80),",")
let g:onedark_color_overrides = {
  \ "black": {"gui": "#2C323C", "cterm": "236", "cterm16": "8"},
  \ "cursor_grey": {"gui": "#282C34", "cterm": "235", "cterm16": "0"}
  \ }

मैंने सिर्फ दो मानों की अदला-बदली की, इसे onedark के स्रोत कोड से लिया

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