विम के साथ टेल-ऑफ़ शो रंगीन आउटपुट कैसे करें?


9

इस सवाल में गिल्स ने जवाब दिया

फिर भी एक और संभावना Emacs शेल बफर tail -fमें चलने और Emacs के सिंटैक्स रंग क्षमताओं का उपयोग करने की है।

क्योंकि मैं एक विम उपयोगकर्ता हूं, मैं यह विम के साथ करना चाहता हूं , न कि एमएसीएस
है vim इस सुविधा है?


2
विम सिर्फ एक टेक्स्ट एडिटर है, एमएसीएस के विपरीत ... हालांकि, वीम के लिए एक टेल प्लगइन है जो उपयोग का हो सकता है।
जसनवरी

इसमें विंपेजर प्लग-इन भी हो सकता है
bsd

1
क्या इसमें टेक्स्ट एडिटर होना चाहिए? यदि आपको केवल टेक्स्ट को रंग देने की आवश्यकता है, तो आप
golimar

इसके अतिरिक्त, विम के लिए TailBundle है।
जोफेल

यहां भी ऐसा ही सवाल है । समाधान मल्टीटैल के उपयोग और इसे कॉन्फ़िगर करने के तरीके के बारे में बताता है, शायद यह उपयोगी हो सकता है।
लॉगऑफ

जवाबों:


2

आप Python या किसी अन्य लिपि में वास्तविक समय में बफर (s) को बदलने के लिए एक मल्टीथ्रेड प्लगइन लिख सकते हैं जो Vim सपोर्ट करता है और थ्रेड होता है।

लेकिन यह केवल टर्मिनल में काम करता है जहाँ तक मुझे पता है। कम से कम X11 में, GUI संस्करण क्रैश हो जाएगा यदि GUI को किसी अन्य थ्रेड द्वारा संशोधित किया गया है।

यदि आप अन्य प्रोग्राम स्वीकार करते हैं, तो grc और ccze स्ट्रीम को कलर करने में सक्षम होते हैं।


0

मुझे यह छोटा और बिना हैकिंग या बाहरी स्क्रिप्ट पसंद है। जब जरूरत हो (या लॉग-फाइल खोलने पर प्रत्येक कमांड को vimrc में डाल सकते हैं, तो आप इस ऑनलाइनर को पूर्व (whithin vim) से चला सकते हैं।)

:set autoread | au CursorHold * checktime | call feedkeys("lh")

और इसके अलावा आप :set syntax=logtalkलॉग को रंग कर सकते हैं

(यदि आप फ़ाइल के अंत में कूदना चाहते हैं (लगभग), तो बस "एलएच" के बजाय "एल" का उपयोग करें (गदहे के साथ) करें

स्पष्टीकरण:

  • autoread: बाहर से परिवर्तित होने पर फ़ाइल पढ़ता है (लेकिन यह अपने आप काम नहीं करता है, कोई आंतरिक टाइमर या ऐसा कुछ नहीं है। यह केवल फ़ाइल को पढ़ेगा जब विम एक कार्रवाई करता है, जैसे पूर्व में एक कमांड। :!
  • CursorHold * checktime: जब उपयोगकर्ता द्वारा निर्दिष्ट समय के लिए कर्सर को स्थानांतरित नहीं किया जाता है updatetime(जो कि डिफ़ॉल्ट रूप से 4000 मील प्रति सेकंड है) checktimeनिष्पादित किया जाता है, जो फ़ाइल के बाहर से परिवर्तन के लिए जांच करता है।
  • call feedkeys("lh"): कर्सर को एक बार दाएं और बाएं बाएं घुमाया जाता है। और तब कुछ भी नहीं होता है (... जिसका अर्थ है, जो CursorHoldट्रिगर है, जिसका अर्थ है कि हमारे पास एक लूप है )

उपयोग करते समय स्क्रॉल को रोकने के लिए call feedkeys("G"), निष्पादित करें :set noautoread- अब vim बताएगा, कि फ़ाइल में परिवर्तन था ans पूछें कि क्या कोई बदलाव पढ़ना चाहता है या नहीं)

जब आप स्क्रीन / tmux के बिना ssh सत्र में काम कर रहे हों, तो मुझे vim (पूंछ के बजाय) में logfiles देखना पसंद है। इसके अतिरिक्त, आप लॉगफ़ाइल से सीधे कॉपी कर सकते हैं, यदि आवश्यक हो, या सीधे आउटपुट को बचा सकते हैं या ... जो भी आप कर सकते हैं vim :)

* इस से जवाब (द्वारा एक जवाब की बात कर PhanHaiQuang और द्वारा एक टिप्पणी flukus )

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