वहाँ एक "विम रनटाइम लॉग" है?


130

कभी-कभी मैं अपने vimrc में अनुकूलन / कमांड का प्रयास करता हूं। सब कुछ सही होने के लिए, लेकिन यह सिर्फ काम नहीं करता है।

यह जानना मुश्किल है कि विम कब शुरू हो रहा है, और यह जानें कि कौन सी कमांड विफल हुई या नहीं, इसलिए यह वास्तव में डिबग करना मुश्किल है कि मेरे vimrc में समस्या क्या हो सकती है। यह एक परीक्षण-त्रुटि दृष्टिकोण है, जो समय लेने वाला है और वास्तव में एक पीआईटीए है। उदाहरण के लिए, मुझे कुछ फ़ाइलों में स्निपेट प्लगइन के साथ समस्या हो रही है और समस्या का पता लगाने के तरीके के बारे में अभी कोई सुराग नहीं है।

क्या कोई "रनटाइम लॉग" होता है, जब विम शुरू होता है, यह बताते हुए कि इसे किस कमांड से निष्पादित किया गया है, कौन से विफल हुए और ऐसे? इससे मुझे बहुत मदद मिलेगी।

जवाबों:


163

-V [N] विकल्प के साथ vim चल रहा है, एक बहुत अच्छा रनटाइम लॉग करेगा, यहाँ N डिबग स्तर है।

vim -V9myVim.log

फ़ाइल नाम के साथ वर्तमान निर्देशिका में डीबग स्तर 9 का लॉग बना देगा myVim.log


मुझे Zyx और आप दोनों के दृष्टिकोण पसंद हैं, लेकिन आपका दृष्टिकोण मेरे विचार में बेहतर है क्योंकि यह केवल सरल है, केवल cmd में, और मैं इसे चलाने पर हर बार लॉग इन करने के लिए एक रास्ता तय कर सकता हूं, और मुझे "फुलाए" जाने की आवश्यकता नहीं है “मेरी विमूच। और एसओ में आपका स्वागत है!
कोई अभी भी आपको MS-DOS

2
यह भी देखें :h 'verbose'और :h :verbose
पैलेक

MacVim-V विकल्प या किसी कमांड-लाइन विकल्प का समर्थन नहीं करता है ।
इमलोवे

यह फ़ाइल नाम के बिना एक खाली विम बफर खोलता है। आगे क्या?
ज्योफ लैंगेंडरफर

104

:messages सभी चेतावनियों, त्रुटियों और सूचनात्मक संदेशों को दिखाता है जो (संभवतः संक्षेप में) विम स्थिति में दिखाई देते हैं।

:echo errmsg सबसे हालिया त्रुटि संदेश प्रिंट करता है।

g<एक और विशेषता है जिसके बारे में बहुत कम लोग जानते हैं। से :help g<:

g<आदेश पिछला आदेश उत्पादन के अंतिम पृष्ठ को देखने के लिए इस्तेमाल किया जा सकता। यह विशेष रूप से उपयोगी है यदि आप गलती <Space>से हिट-एंटर प्रॉम्प्ट पर टाइप करते हैं।

उदाहरण के लिए :!ls, फिर प्रॉम्प्ट रद्द करें, फिर हिट करें g<


15

इस फ़ंक्शन को .vrc पर डालें:

function! ToggleVerbose()
    if !&verbose
        set verbosefile=~/.log/vim/verbose.log
        set verbose=15
    else
        set verbose=0
        set verbosefile=
    endif
endfunction

फिर अपनी लॉग इन प्राप्त करने के लिए डायरेक्टरी बनाएं ~/.log/vimऔर कॉल करें । ध्यान दें कि आप पकड़ सकते हैं «चर प्रदर्शित करने के लिए बहुत गहरा घोंसला» त्रुटि जो सामान्य रूप से सिर्फ इसलिए नहीं दिखाई देगी क्योंकि आपने अपना वर्बोज़ स्तर उठाया है।ToggleVerbose()~/.log/vim/verbose.log


2

मुझे नहीं लगता कि कोई रनटाइम लॉग है, प्रति se , लेकिन आप इसे डिबग मोड में चला सकते हैं।
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts


2
लगता है यह साइट हैक हो गई है या कुछ और है। जब तक यह ठीक नहीं हो जाता, तब तक web.archive.org/web/2009032303034339/http://… पर कैश्ड संस्करण देखें ।
मु माइंड

मुझे 403 मना किया गया
फ्रैंक फेंग


1

यह संभवतः सब कुछ के खिलाफ जाता है जो एसओ के लिए खड़ा है, लेकिन यहां मैं क्या करता हूं: मैं जल्द ही प्रिंट स्क्रीन को हिट करता हूं जैसे ही चेतावनी आती है और तस्वीर को देखो।


क्या पॉज़ बटन पर एक समान प्रभाव नहीं पड़ेगा, व्यर्थ का पेपर माइनस?
राक

अब तक मुझे कभी नहीं पता था कि ठहराव की कुंजी क्या है। किसी भी स्थिति में, मुझे नहीं लगता कि यह Linux stackoverflow.com/questions/92802/…
puk

2
FWIW, * nix टर्मिनल्स Ctrl-S पर आउटपुट रोकेंगे और Ctrl-Q पर फिर से शुरू करेंगे।
joeytwiddle

1

मुझे "ToggleVerbose ()" फ़ंक्शन का उपयोग करने के लिए "सेट nocp" जोड़ना पड़ा जब रूट में & क्रिया के कारण चलाया जाता है

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