2012-03-11 14 views
15

डिबगिंग/ट्रेसिंग विम प्लगइन्स की बेहतर, सामान्य विधि क्या है? मान लीजिए कि मेरे पास एक काफी परिष्कृत प्लगइन फू है, जो कि एफ 9 पर एक कुंजी दबाकर फ़ाइल-ब्राउज़र के साथ नई विंडो खुलती है और फाइल को चुनने की संभावना देता है, उसके बाद फाइलनाम को मुख्य विंडो में कॉपी किया जाता है। मैं देखना चाहता हूं कि जब मैं F9 कुंजी, किसी प्रकार का कॉल ट्रेस दबाता हूं तो क्या कहा जाता है।कॉल निशान के साथ विम प्लगइन्स डीबगिंग

उत्तर

13

मुझे सबसे अच्छा तरीका मिला है (g) vim शुरू करते समय -V ध्वज का उपयोग करना है।

$ vim -V[N]{filename} 

तब पता लगा संदेश जो प्राप्त किया जाता है प्रत्येक फ़ाइल के लिए दी जाएगी: आप लिखित लॉग के लिए N पता लगाने के लिए एक स्तर और एक फ़ाइल नाम निर्दिष्ट कर सकते हैं। (अधिक जानकारी के लिए :help -V देखें।)

परिणामस्वरूप लॉगफाइल के माध्यम से ट्रैवलिंग दर्दनाक हो सकती है, लेकिन यह आमतौर पर बहुत ही जानकारीपूर्ण होती है। जब हो रहा है की तस्वीर प्राप्त करने के लिए मुझे ट्रिगर ईवेंट से पहले और उसके बाद लॉगफाइल को देखने के लिए सबसे अच्छा लगता है (<F9> दबाकर)।

5

यदि आपके पास पहले से ही विम ओपन है, तो मैन्युअल रूप से वीआईएम के डिबगर में निर्मित कमांड को निष्पादित करने का प्रयास करें।

1) क्या vim करता है जब आप कुंजी

:map <F-9> 

2 प्रेस जानकारी प्राप्त करें) मैप किया कमांड चलाएं मैन्युअल डिबगर

:debug _mapped_command_ 

3) अभी आप के लिए में गिरा दिया जाना चाहिए के तहत डिबगर, तो

set verbose=20 

4) और अंत में प्रेस n और आर जारी रखने के लिए कुंजी दर्ज करें स्क्रिप्ट को अनदेखा करना

इस बिंदु पर आपको स्क्रीन पर आउटपुट का पूरा समूह देखना चाहिए। स्क्रीन से स्थानांतरित करने के लिए स्क्रीन को स्क्रॉल करने के लिए आप स्पेस दबा सकते हैं।

"लाइन #:" से शुरू होने वाला कोई भी आउटपुट उस समय लाइन विम निष्पादित कर रहा है।

1

परिष्कृत प्लगइन के लिए, आमतौर पर कमांड लाइन डिबगिंग या ट्रेसिंग पर्याप्त नहीं है।

आप विम के अंदर एक दृश्य डीबग करने के लिए BreakPts का उपयोग कर सकते हैं।

यह दूरस्थ डिबगिंग पर आधारित है, इसलिए आपको vim के सर्वर इंस्टेंस को डीबग करने की आवश्यकता है।

मूल रूप से

:

टर्मिनल 1:

$ vim --servername Foo 
... 
set breakpoint on any Foo function 
do whatever operation which trigger Foo logic 
... 

टर्मिनल 2:

$ vim 
:BreakPts 
:BPRemoteServ FOO 
:BPDWhere locate (actual debug execution point) 
:BPDNext or F12 (next execution line) 
:BPDStep or F11 (step inside functions, dictionary functions) 
:BPDEvaluate or F8 (if pressed on visual selection evaluates that) 
:BPDCont or F5 (continue execution) 

देखें कुछ प्लग dinamically लोड किए गए हैं ताकि आप उन लोगों के साथ breakpoints सेट करने से पहले संचालित करने के लिए की जरूरत है।

:BPFunctions (Show debuggeable fuctions on RemoteServer) 
:BPScripts (Show debuggeable scripts on RemoteServer) 
:BPPoints (Show defined breakpoints on RemoteServer) 

मैं ठीक/ट्वीक है/इस महान प्लगइन के लिए vim प्लगइन्स धन्यवाद का एक बहुत विकसित:

एक बार जब आप के साथ जुड़ा vim से ब्रेकपाइंट सेट कर सकते हैं लोड।

संबंधित मुद्दे