Vim एडिटर में कमांड कैसे जोड़ें?


84

यदि मान लें कि मेरे स्रोत कोड का नाम "foo.c" है। संपादन और डीबगिंग के दौरान मैं हमेशा इस कमांड को निष्पादित करता हूं: -

:! gcc -g foo.c -o foo; gdb फू

क्या मैं एक कस्टम कमांड Vim में जोड़ सकता हूं जैसे कि अगर मैं टाइप करता हूं ": debug" तो उपरोक्त कमांड निष्पादित होता है? मैं इसे कैसे प्राप्त करूं?

जवाबों:


100

हाँ। विम प्रलेखन, धारा 40.2, कमांड-लाइन मैपिंग :

विम संपादक आपको अपने स्वयं के आदेशों को परिभाषित करने में सक्षम बनाता है। आप इन कमांड्स को किसी अन्य कमांड-लाइन मोड कमांड की तरह ही निष्पादित करते हैं। एक कमांड को परिभाषित करने के लिए, निम्नानुसार ": कमांड" कमांड का उपयोग करें:

: कमांड डिलीट 1 डिलीट

अब जब आप कमांड निष्पादित करते हैं ": DeleteFirst" Vim executes ": 1delete", जो पहली पंक्ति को हटा देता है।

नोट: उपयोगकर्ता द्वारा परिभाषित कमांड को एक कैपिटल लेटर से शुरू होना चाहिए। आप ": X", ": अगला" और ": प्रिंट" का उपयोग नहीं कर सकते। अंडरस्कोर का उपयोग नहीं किया जा सकता है! आप अंकों का उपयोग कर सकते हैं, लेकिन यह हतोत्साहित किया जाता है।

उस लाइन को अपने ~/.vimrc( :निश्चित रूप से inital of minital ) डालें और इसे हर बार जब आप vim शुरू करेंगे तब परिभाषित किया जाएगा। इसके अलावा, %:tसंपादित की जा रही फ़ाइल का संदर्भ बनाने के लिए उपयोग करें (लेखन ! gcc %:tद्वारा प्रतिस्थापित किया जाता है ! gcc foo.c)।

यदि आप इसे केवल एक फ़ाइल के लिए, या कुछ फ़ाइलों के लिए परिभाषित करना चाहते हैं, तो आप एक ऑटोकॉमैंड चाहते हैं


4
यदि आप किसी मौजूदा कमांड को बदल रहे हैं, तो आपको उपयोग करने की आवश्यकता है command!
फिएट

14

विम के पास पहले से ही मेकफाइल्स (: मेक) के लिए समर्थन है । यदि आप अपने स्रोत के लिए एक बनाते हैं, तो आप इसमें निर्दिष्ट कर सकते हैं कि आप क्या चाहते हैं। इसके अलावा, ctags के माध्यम से, विम संकलन के दौरान पाई गई किसी भी त्रुटि के माध्यम से पुनरावृत्ति करने में सक्षम होगा।


5

एक उपयोगकर्ता परिभाषित vi संपादक कमांड जोड़ें:

यह इसे ऐसा बना देगा कि जब उपयोगकर्ता :Legendसामान्य मोड में टाइप करता है, तो कर्सर के नीचे पाठ का एक ब्लॉक जोड़ा जाता है।

चरण 1: इस लाइन को ~ / Legend_header.txt` नामक फ़ाइल में डालें

this text will be added

चरण 2: इस कमांड को अपनी ~ / .vimrc फ़ाइल में डालें (यदि फ़ाइल मौजूद नहीं है, तो इसे बनाएं):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

चरण 3: परिवर्तनों को प्रभावी करने के लिए vi को पुनः प्रारंभ करें। हो गया।

झसे आज़माओ

चरण 1: vi में एक नई फ़ाइल खोलें। Vi में डिफ़ॉल्ट "सामान्य मोड" में रहें। प्रकार:Legend

चरण 2: ~/legend_header.txtजहां कर्सर है वहां की सामग्री को जोड़ा जाना चाहिए।


0

मैं इस आदेश का उपयोग अपने .vimrc में c कोड को संकलित करने और निष्पादित करने के लिए करता हूं:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, लेकिन अपनी आवश्यकताओं के लिए आप रख सकते हैं:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

आप सुनिश्चित कर सकते हैं कि निष्पादन फ़ाइल का नाम .c एक्सटेंशन के बिना स्रोत का नाम होगा।

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