सबसे अधिक इस्तेमाल होने वाली विम कमांड / कीपेस क्या हैं?


112

मैं एक रूबी प्रोग्रामिंग हूं जो टेक्सटमेट से मैकविम पर स्विच करने की कोशिश कर रहा हूं, और मुझे उन चीजों की शानदार सूची के माध्यम से लुप्त होने में परेशानी हो रही है जो आप वीआईएम में कर सकते हैं और उनके लिए सभी कुंजीपट। मैं पाठ को सम्मिलित करने के लिए "आप 'का उपयोग कर सकते हैं, या चरित्र के बाद पाठ जोड़ने के लिए' ए 'या लाइन के अंत में पाठ जोड़ने के लिए' ए ', या ..." मैं कल्पना नहीं कर सकता " हर कोई पाठ को नेविगेट करने के लिए सभी 20 अलग-अलग कुंजीपटों का उपयोग करता है, पाठ जोड़ना शुरू करने के लिए 10 या तो चाबियाँ, और 18 तरीके से एक आंतरिक ब्लॉक का चयन करें। या तुम करते हो!?

मेरी आदर्श चीट शीट 30-40 सबसे अधिक इस्तेमाल की जाने वाली कीप्स या कमांड्स होगी जो हर कोई दैनिक आधार पर कोड लिखने के लिए उपयोग करता है, साथ ही पूर्ण आवश्यक प्लगइन्स भी शामिल है जो माणिक दैनिक उपयोग करते हैं और उनके लिए 10 सबसे अधिक उपयोग किए जाने वाले कमांड हैं। सिद्धांत रूप में, एक बार मेरे पास है और मैं VIM में उतना ही कुशल बनना शुरू कर दूंगा जितना कि मैं Textmate में हूं , फिर मैं हजारों VIM कमांड सीखना शुरू कर सकता हूं जो मुझे अधिक कुशल बनाएंगे ।

या, क्या मैं VIM को पूरी तरह से गलत तरीके से सीख रहा हूं?


9
Cafepress.com/geekcheat.11507711 पर अप्रचलित संदर्भ ।
geekosaur

1
'माणिक' को हटाने और 'कीबोर्ड-शॉर्टकट' जोड़ने के लिए फिर से तैयार किया गया। अधिक उपयुक्त लगता है।

"क्या मैं विम को गलत तरीके से सीख रहा हूं?" - नाह, आपको बस कुछ मूल बातों के साथ शुरुआत करने की जरूरत है, और याद रखें कि आप अभी भी एक वर्ष से अधिक कमांड सीख रहे हैं। शायद किसी दिन आप वास्तव में सभी आदेशों का उपयोग करेंगे! लेकिन पहले दिन से कोई भी उन सभी का उपयोग नहीं करता है।
कैस्केबेल

जवाबों:


306

यहाँ एक टिप शीट है जो मैंने एक बार लिखी थी, जो कि मैं वास्तव में नियमित रूप से उपयोग करता हूं।

संदर्भ

सामान्य

  • लगभग सभी आदेशों को एक रिपीट गिनती के लिए एक संख्या से पहले किया जा सकता है। जैसे। 5dd हटाएं 5 लाइनें
  • <Esc> आपको किसी भी मोड से बाहर जाता है और वापस कमांड मोड में जाता है
  • द्वारा पूर्ववर्ती कमांड : स्क्रीन के निचले भाग में कमांड लाइन पर निष्पादित की जाती हैं
  • : किसी भी कमांड की मदद लेना

पथ प्रदर्शन

  • कर्सर आंदोलन: ← जेकश्मीर एल →
  • शब्दों द्वारा:
    • w अगले शब्द (विराम चिह्न द्वारा); W अगला शब्द (रिक्त स्थान द्वारा)
    • बी बैक वर्ड (विराम चिह्न द्वारा); बी बैक शब्द (रिक्त स्थान द्वारा)
    • अंत शब्द (विराम चिह्न द्वारा); अंत शब्द (रिक्त स्थान द्वारा)
  • रेखा से:
    • 0 लाइन की शुरुआत; ^ पहले गैर-व्हाट्सएप
    • $ लाइन का अंत
  • पैराग्राफ द्वारा:
    • { पिछली खाली लाइन; } अगली खाली लाइन
  • फ़ाइल द्वारा:
    • जीजी फ़ाइल की शुरुआत; जी फ़ाइल के अंत
    • 123G विशिष्ट लाइन नंबर पर जाएं
  • मार्कर द्वारा:
    • एमएक्स सेट मार्क एक्स ; 'x मार्क x पर जाएं
    • '। अंतिम संपादन की स्थिति पर जाएं
    • '' कूदने से पहले अंतिम बिंदु पर वापस जाएं
  • स्क्रॉल:
    • ^ एफ आगे पूर्ण स्क्रीन; ^ बी बैकवर्ड फुल स्क्रीन
    • ^ डी डाउन आधी स्क्रीन; ^ यू अप हाफ स्क्रीन
    • ^ ई एक लाइन ऊपर स्क्रॉल करें; ^ Y एक पंक्ति नीचे स्क्रॉल करें
    • zz केंद्र कर्सर रेखा

संपादन

  • यू अनडू; ^ आर रीडो
  • अंतिम संपादन कमांड दोहराएं

डालने

सभी सम्मिलन आदेशों <Esc>को कमांड मोड पर लौटने के लिए समाप्त किया जाता है।

  • मैं कर्सर पर पाठ सम्मिलित करता हूं ; मैं पंक्ति के प्रारंभ में पाठ सम्मिलित करता हूं
  • कर्सर के बाद एक परिशिष्ट पाठ; पंक्ति के अंत के बाद एक परिशिष्ट पाठ
  • नीचे नई लाइन खोलें; ऊपर नई लाइन खोलू

बदलना

  • r एकल चरित्र की जगह; आर कई पात्रों की जगह
  • रों एकल वर्ण बदलने
  • cw परिवर्तन शब्द; सी लाइन के अंत में परिवर्तन; cc पूरी लाइन बदलें
  • c<motion> गति की दिशा में पाठ को बदलता है
  • ci ( कोष्ठक के अंदर परिवर्तन) ( अधिक उदाहरण के लिए पाठ ऑब्जेक्ट चयन देखें )

हटाया जा रहा है

  • x हटाओ चार
  • dw डिलीट वर्ड; डी लाइन के अंत तक हटा दें; dd पूरी लाइन हटा दें
  • d<motion> गति की दिशा में हटता है

काटो और चिपकाओ

  • yy कॉपी लाइन पेस्ट बफर में; dd कट लाइन पेस्ट बफर में
  • p कर्सर लाइन के नीचे बफर पेस्ट करें; P कर्सर रेखा के ऊपर बफर चिपकाएं
  • xp स्वैप दो अक्षर ( x एक वर्ण को हटाने के लिए, फिर p इसे कर्सर स्थिति के बाद वापस रखने के लिए)

ब्लाकों

  • v दृश्य ब्लॉक स्ट्रीम; वी दृश्य ब्लॉक लाइन; ^ वी दृश्य ब्लॉक कॉलम
    • अधिकांश मोशन कमांड ब्लॉक को नए कर्सर स्थिति में विस्तारित करते हैं
    • o कर्सर को ब्लॉक के दूसरे छोर पर ले जाता है
  • d या x कट ब्लॉक को पेस्ट बफर में
  • y कॉपी ब्लॉक पेस्ट बफर में
  • > इंडेंट ब्लॉक; < एकतरफा ब्लॉक
  • जीवी अंतिम दृश्य ब्लॉक को फिर से दर्शाता है

वैश्विक

  • :% s / foo / bar / g स्थानापन्न के सभी घटनाएँ "फू" से "बार"
    • % एक सीमा है जो फ़ाइल में प्रत्येक पंक्ति को इंगित करता है
    • / g एक ऐसा ध्वज है जो केवल एक पहले के बजाय एक पंक्ति में सभी घटनाओं को बदलता है

खोज कर

  • / खोज आगे; ? पीछे खोजो
  • * कर्सर के तहत शब्द के लिए खोज आगे; # कर्सर के नीचे शब्द के लिए खोज पिछड़े
  • n अगला मैच उसी दिशा में; एन अगला मैच विपरीत दिशा में
  • अगले वर्ण x के लिए fx आगे ; पिछले वर्ण x के लिए Fx पीछे
  • ; उसी दिशा में फिर से उसी चरित्र की ओर बढ़ें; , विपरीत दिशा में फिर से एक ही चरित्र के लिए चलते हैं

फ़ाइलें

  • : डब्ल्यू डिस्क पर फ़ाइल लिखें
  • : डब्ल्यूname डिस्क के रूप में फ़ाइल लिखेंname
  • ZZ फाइल को डिस्क पर रखें और छोड़ दें
  • : n एक नई फ़ाइल को संपादित करें; : n! वर्तमान परिवर्तनों को सहेजे बिना एक नई फ़ाइल संपादित करें
  • : q एक फ़ाइल का संपादन छोड़ दिया; : q! परिवर्तनों को सहेजे बिना संपादन छोड़ दिया
  • : ई उसी फ़ाइल को फिर से संपादित करें (यदि विम के बाहर बदला गया है)
  • :इ । निर्देशिका खोजकर्ता

खिड़कियाँ

  • ^ नई विंडो
  • ^ अगली विंडो पर नीचे जाएं; ^ पिछली विंडो तक जागो
  • ^ W_ अधिकतम वर्तमान विंडो; ^ W = सभी विंडो को समान आकार दें
  • ^ खिड़की के आकार में वृद्धि + डब्ल्यू ; ^ W- कमी खिड़की का आकार

स्रोत नेविगेशन

  • यदि भाषा मॉड्यूल लोड किया जाता है, तो मिलान कोष्ठक / ब्रैकेट / ब्रेस, या भाषा ब्लॉक में % जंप करें
  • जीडी कर्सर के तहत स्थानीय प्रतीक की परिभाषा पर जाएं; ^ पिछली स्थिति में वापस आ जाओ
  • ^] वैश्विक प्रतीक की परिभाषा पर जाएं ( tagsफ़ाइल की आवश्यकता है); ^ पूर्व की स्थिति में टी वापस लौटी (पदों का मनमाना स्टैक)
  • ^ एन (इनसर्ट मोड में) स्वचालित शब्द पूर्णता

स्थानीय परिवर्तन दिखाएं

विम में कुछ विशेषताएं हैं जो उन लाइनों को उजागर करना आसान बनाती हैं जिन्हें स्रोत नियंत्रण में आधार संस्करण से बदल दिया गया है। मैंने एक छोटी विम स्क्रिप्ट बनाई है जो इसे आसान बनाती है: http://github.com/ghewgill/vim-scmdiff


1
+1 अपेक्षाकृत न्यूनतम, हालांकि मुझे यह स्वीकार करना चाहिए कि मैं अपने आप को किसी भी विंडो कमांड का उपयोग करके या तीर कुंजी / पेजअप / पेजेड / होम / एंड और जीजी / जी के अलावा किसी अन्य चीज के साथ नेविगेट नहीं करता हूं। ओह, और लाइन नंबर नेविगेशन के लिए आप भी उपयोग कर सकते हैं: 123 (कमांड मोड)।

2
अच्छा धोखा दिया। मैं ^ w ^ को विंडोज़ के माध्यम से चक्र में जोड़ना चाहूंगा : स्थिरता के लिए ZZ के बजाय x , वर्ण से पहले tx आगे और Tx पिछड़े।
रोमेनिल

मुझे ध्यान देना चाहिए कि यह केवल मूल बातें है जो मैं उपयोग करता हूं। मैंने इस सूची को अन्य लोगों को विम सिखाने के लिए एक उपकरण के रूप में बनाया। मैं कई अन्य आदेशों का कम बार उपयोग करता हूं, और विभिन्न एलियम्स और मैक्रोज़ भी स्थापित किए हैं जो मुझे अधिक प्रभावी ढंग से उपयोग करने में मदद करते हैं।
ग्रेग हेविगेल

2
यदि आप Escकुंजी (और आरएसआई?) से बचना चाहते हैं , तो आप उपयोग कर सकते हैं ^[^cभी काम करता है (लेकिन संक्षिप्तीकरण का विस्तार नहीं करता है)। स्रोत: vim.wikia.com/wiki/Avoid_the_escape_key
Lian

22

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

VIM सीखने के लिए यह अब तक की सबसे बड़ी बात है।


मैंने इससे पहले कभी नहीं देखा, आपके लिए बहुत ही अच्छा संदर्भ है क्योंकि आप जानते हैं कि कमांड क्या करते हैं।
अक्टूबर को

3
यदि आप एक qwerty कीबोर्ड नहीं है, तो "चित्रमय" भाग बेकार है।
रोमेनैल

5
यह मुझे आश्चर्यचकित करता है कि एक लिंक पोस्ट करना (जो कि पहले से ही btw मौत के लिए पोस्ट किया गया है) बहुत अधिक ध्यान आकर्षित करता है, जबकि अतिरिक्त मील अन्य पोस्टरों में नहीं डालते हैं ...
लेवेन कीर्सेमर्स

Vim पोस्ट में स्पष्ट विजेता: stackoverflow.com/questions/1218390/…
जस्टिन थॉमस


4

क्या आपने विम के अंतर्निहित ट्यूटोरियल के माध्यम से चलाया है? यदि नहीं, तो कमांड-लाइन पर जाएं और टाइप करें vimtutor। प्रारंभिक कमांड सीखने का यह एक शानदार तरीका है।

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

इंटरनेट पर विम के लिए कई अच्छे एफएक्यू और चीटशीट हैं। मैं vim + faqऔर खोज करने की सलाह दूंगा vim + cheatsheetCheat-Sheets.org # vim एक अच्छा स्रोत है, जैसा कि Vim Tips wiki है


मैं बस के बारे में पता चला, और शुक्र है कि यह एक मैक पर स्थापित आता है। इसे आजमाकर (दोपहर 1 बजे ...)
क्लिंटन

मैं लंबे समय से विम का उपयोग कर रहा हूं, और इसकी पहली चीजों में से एक मैं एक मशीन पर स्थापित करता हूं। मैक ओएस पर मैकविम बहुत अच्छा है। मैं अपने द्वारा उपयोग किए जाने वाले अधिकांश लिनक्स बॉक्सों पर स्रोत से विम संकलन करने के लिए जाता हूं, बस इसलिए कि अधिकांश डिस्ट्रोस वर्तमान नहीं हैं, या भाषा समर्थन सही नहीं है। मैं एक वर्तमान मेरी के संस्करण रखने ~/.vimrc, ~/.gvimrcऔर ~/.vimमैं सेट कुछ करने के लिए है जब के लिए एक राल गेंद में निर्देशिका। उस प्रतिलिपि को कॉपी करना और फ़ाइलों को निकालना मुझे विंडोज, मैक और लिनक्स पर मिनटों में मेरे सभी सामान्य आदेशों और कलरकेम के साथ चलने की अनुमति देता है।
टिन मैन

3

क्या ज्यादातर लोगों करना नंगे मूल बातें के साथ शुरू, हो सकता है की तरह है i, yw, yy, और p। आप इधर-उधर जाने के लिए तीर कुंजियों का उपयोग करना जारी रख सकते हैं, माउस के साथ पाठ का चयन कर सकते हैं, मेनू का उपयोग कर सकते हैं, इत्यादि जब कोई चीज़ आपको धीमा कर रही है, तो आप इसे करने का तेज़ तरीका देखते हैं, और धीरे-धीरे अधिक से अधिक कमांड जोड़ते हैं। आप थोड़ी देर के लिए प्रति दिन एक नया आदेश सीख सकते हैं, फिर यह प्रति सप्ताह एक तक पहुंच जाएगा। आप एक महीने में काफी उत्पादक महसूस करेंगे। एक साल के बाद आपके पास एक बहुत ठोस प्रदर्शनों की सूची होगी, और 2-3 वर्षों के बाद आप सचेत रूप से यह भी नहीं सोचेंगे कि आपकी उंगलियां क्या टाइप कर रही हैं, और यह अजीब लगेगा यदि आपको इसे किसी के लिए बाहर निकालना है। मैंने 1993 में vi सीखा और अभी भी एक वर्ष में 2 या 3 नए कमांड उठाता हूं।


3

@Greg Hewgill की धोखाधड़ी बहुत अच्छी है। मैंने कुछ महीने पहले TextMate से अपना स्विच शुरू किया था। अब मैं उतना ही उत्पादक हूं जितना मैं टीएम के साथ था और विम की शक्ति से लगातार चकित था।

यहां बताया गया है कि मैंने कैसे स्विच किया । हो सकता है कि यह आपके लिए उपयोगी हो।

ग्रोसो मोडो, मुझे नहीं लगता कि एक रेडिकल स्विच करना अच्छा है। विम बहुत अलग है और उत्तरोत्तर जाना सबसे अच्छा है।

और आपके वशीकरण का जवाब देने के लिए, हाँ, मैं सभी को iaIAoOडालने के मोड में प्रवेश करने के लिए हर रोज उपयोग करता हूं । यह निश्चित रूप से पहली बार में अजीब लगता है लेकिन आप वास्तव में इसके बारे में कुछ समय बाद नहीं सोचते हैं।

कुछ प्रोग्रामिंग संबंधी कार्यों के लिए कुछ कमांड अविश्वसनीय रूप से उपयोगी हैं:

  • rऔर Rपात्रों को बदलने के लिए
  • <C-a>और <C-x>संख्या बढ़ाने और घटाने के लिए
  • citHTML टैग की सामग्री को बदलने के लिए, और उसके संस्करण ( cat, dit, dat, ci(, आदि)
  • <C-x><C-o>,,omnicompletion के लिए (मैप किया गया )
  • के साथ दृश्य ब्लॉक चयन <C-v>
  • और इसी तरह…

एक बार जब आप विम तरीके के आदी हो जाते हैं तो किसी अन्य संपादक या टेक्स्टफील्ड में टेक्स्ट को संपादित करते समय हिट oया xहर समय नहीं करना वास्तव में कठिन हो जाता है ।


2

मैं कल्पना नहीं कर सकता कि सभी लोग पाठ को नेविगेट करने के लिए सभी 10 अलग-अलग कुंजीपटों का उपयोग करते हैं, पाठ जोड़ना शुरू करने के लिए 10 या इतनी कुंजियाँ, और नेत्रहीन रूप से एक आंतरिक ब्लॉक का चयन करने के 18 तरीके। या तुम करते हो!?

मैं करता हूँ।

सिद्धांत रूप में, एक बार मेरे पास ऐसा है और मैं VIM में उतना ही कुशल बनना शुरू कर दूंगा जितना कि मैं Textmate में हूं, तो मैं हजारों VIM कमांड सीखना शुरू कर सकता हूं जो मुझे अधिक कुशल बनाएंगे।

इसे करने का सही तरीका है। बुनियादी आदेशों से शुरू करें और फिर अपनी उत्पादकता में सुधार करने वाले लोगों को चुनें। मैं इस ब्लॉग को निम्नलिखित के बारे में सुझाव देना चाहता हूं कि विम के साथ मेरी उत्पादकता में सुधार कैसे करें।


2

tuxfiles.org बहुत अच्छा धोखा देती है। मुझे लगता है कि कमांड सीखने के लिए कुछ बिंदु हैं:

  • धोखा पत्र नियमित रूप से पढ़ें। उन सभी का उपयोग करने के बारे में चिंता न करें, या सभी कुंजियों को याद रखें, बस यह जान लें कि कमांड मौजूद है। कमांड को देखें और इसका उपयोग तब करें जब आप खुद को कुछ दोहराते हुए पाएं।
  • यदि आप खुद को नियमित रूप से कुछ करते हुए पाते हैं (जैसे किसी विशेष वर्ण के बाद पूरी रेखा को हटाना d$), तो यह देखने के लिए एक त्वरित Google खोज पर जाएं कि क्या आप इसके लिए कोई आदेश प्राप्त कर सकते हैं।
  • नीचे दिए गए आदेशों को लिखें जो आपको लगता है कि आप उपयोगी पाएंगे और उस सूची को रखेंगे जहाँ आप अपना कोड लिखते समय इसे देख सकते हैं। मैं कुछ छपवाने के खिलाफ तर्क दूंगा और इसके बजाय आपको एक समय में केवल कुछ आदेशों के लिए नोट्स का उपयोग करने के लिए प्रोत्साहित करूंगा।
  • यदि संभव हो तो, अन्य प्रोग्रामर vim का उपयोग करते हुए देखें, और उनसे पूछें कि वे क्या कमांड का उपयोग कर रहे हैं जैसा कि आप देखते हैं कि वे कुछ दिलचस्प करते हैं।

इन युक्तियों के अलावा, कुछ बुनियादी अवधारणाएं हैं जिन्हें आपको समझना चाहिए।

  • vim समान फ़ंक्शन का प्रतिनिधित्व करने के लिए उसी वर्ण का उपयोग करेगा। उदाहरण के लिए, वर्ण उपयोग के बाद एक पंक्ति को हटाने के लिए d$। किसी विशेष वर्ण के उपयोग के बाद एक रेखा को उजागर करना v$। तो ध्यान दें कि $इंगित करता है कि आप उस पंक्ति के अंत में कुछ कर रहे हैं जहाँ से वर्तमान में आपका कर्सर है।
  • uपूर्ववत है, और ctrl+rफिर से है।
  • एक कमांड के सामने एक नंबर डालने से यह बार-बार निष्पादित होगा। 3ddवह लाइन हटा देगा जिस पर आपका कर्सर चल रहा है और दो लाइनें जो अनुसरण करती हैं, उसी तरह 3yyआपके कर्सर पर उस लाइन को कॉपी करेगा और दो लाइनें जो अनुसरण करती हैं।
  • समझें कि बफ़र्स के माध्यम से नेविगेट करने के लिए बफ़र्स :lsको सूचीबद्ध करने के लिए कैसे उपयोग करें, और :bn, :bpउनके माध्यम से चक्र करने के लिए।
  • :help इस में पाए गए ट्यूटोरियल के माध्यम से पढ़ें 'रस्सियों को सीखने' का सबसे अच्छा तरीका है, और बाकी कमांड्स आप उपयोग के माध्यम से सीखेंगे।

2

अंतिम संपादित पंक्ति में अंतिम संपादित फ़ाइल के साथ विम खोलने के लिए इसे अपने .bashrc में रखें

alias vil="vim  +\"'\"0"

1

विम के साथ कुशल संपादन पर जाएं और जानें कि आपको क्या शुरू करने की आवश्यकता है। उस पृष्ठ पर सब कुछ आवश्यक नहीं है, इसलिए चेरी को आप जो चाहते हैं, उठा लें।

वहाँ से, सब कुछ के लिए विम का उपयोग करें। "hjkl", "y", और "p" आपको एक लंबा रास्ता मिल जाएगा, भले ही यह सबसे कुशल तरीका न हो। जब आप किसी ऐसे कार्य के लिए आते हैं जिसके लिए आप इसे (या बिल्कुल) कुशलता से करने के लिए जादू की कुंजी नहीं जानते हैं, और आप पाते हैं कि आप इसे कुछ समय से अधिक कर रहे हैं, तो इसे देखें। थोड़ा-थोड़ा करके यह दूसरा स्वभाव बन जाएगा।

मैंने पाया कि कई चंद्रमा पहले (जब यह अंत में "मी" नहीं था) डुबकी लगा रहा था, लेकिन इसे कुशल होने में लगभग एक सप्ताह का समय लगा। मुझे अब भी यह सबसे तेज संपादक लगता है जिसमें सामान किया जाता है।


"कुशल संपादन विम के साथ" लिंक अब मर चुका है। मुझे लगता है कि robertames.com/files/vim-editing.html
डेमियन पॉवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.