vim ट्यूटोरियल
शुरुआत विम से हुई
खोज…
टिप्पणियों
Vim (या "Vi IMproved") एक कंसोल-आधारित मल्टी-मोड ( मोडल ) टेक्स्ट एडिटर है। यह व्यापक रूप से सभी यूनिक्स, लिनक्स और एप्पल ओएस एक्स सिस्टम पर डिफ़ॉल्ट रूप से उपयोग और उपलब्ध है। विम का एक बड़ा सक्रिय समुदाय और एक विस्तृत उपयोगकर्ता आधार है। संपादक सभी लोकप्रिय प्रोग्रामिंग भाषाओं का समर्थन करता है, और इसकी विशेषताओं का विस्तार करने के लिए कई प्लगइन्स उपलब्ध हैं।
डेवलपर्स को इसकी गति, कई कॉन्फ़िगरेशन विकल्प और शक्तिशाली अभिव्यक्ति आधारित संपादन के लिए संपादक पसंद है। "कमांड" मोड में एडिटर कीबोर्ड कमांड द्वारा नियंत्रित किया जाता है, इसलिए उपयोगकर्ता GUI या माउस पॉइंटर से विचलित नहीं होता है।
विम सत्तर के दशक में बनाए गए पहले यूनिक्स "vi" संपादक पर आधारित है और यह 1991 के बाद से निरंतर विकास में रहा है। मैक्रोज़ और प्लगइन्स के साथ संपादक एक आधुनिक आईडीई की अधिकांश विशेषताओं की पेशकश करता है। यह अपनी स्क्रिप्टिंग भाषा (vimscript) और नियमित अभिव्यक्तियों के साथ बड़ी मात्रा में पाठ को संसाधित करने में विशिष्ट रूप से सक्षम है।
प्रमुख विषय:
- स्थापना
- संपादन मोड
- पथ प्रदर्शन
- मूल संपादन
- उन्नत संपादन
- विन्यास
- प्लग-इन
- vimscript
- मैक्रो
- समुदाय
- संबंधित परियोजनाएं
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
8.0 | 2016/09/12 |
7.4 | 2013-08-10 |
7.3 | 2010-08-15 |
7.2 | 2008-08-09 |
7.1 | 2007-05-12 |
7.0 | 2006/05/07 |
6.0 | 2001/09/26 |
5.0 | 1998/02/19 |
4.0 | 1996/05/29 |
3.0 | 1994/08/12 |
2.0 | 1993/12/14 |
1.14 | 1991/11/02 |
स्थापना
आपकी मशीन पर विम - अगर एक है - एक "छोटा" निर्माण होने की संभावना है जिसमें क्लिपबोर्ड समर्थन, सिंटैक्स हाइलाइटिंग या यहां तक कि प्लगइन्स का उपयोग करने की क्षमता जैसी उपयोगी सुविधाओं का अभाव है।
यह कोई समस्या नहीं है यदि आपको सभी आवश्यक कॉन्फ़िगरेशन फ़ाइलों को संपादित करने का एक त्वरित तरीका है, लेकिन यदि आप अपने मुख्य संपादक को विम करने का इरादा रखते हैं तो आप जल्द ही कई दीवारों को मारेंगे।
इसलिए आम तौर पर एक पूर्ण निर्माण स्थापित करने की सिफारिश की जाती है।
लिनक्स / बीएसडी पर स्थापना
उन सिस्टमों पर, ट्रिक बस GUI संस्करण को स्थापित करने के लिए है जो GUI को शुरू करने के लिए एक gvim
कमांड और TUI को शुरू करने के लिए vim
कमांड दोनों के साथ आता है।
आर्क और आर्क-आधारित वितरण
$ sudo pacman -R vim
$ sudo pacman -S gvim
डेबियन और डेबियन-आधारित वितरण
$ sudo apt-get update
$ sudo apt-get install vim-gtk
Gentoo और Gentoo- आधारित वितरण
$ sudo emerge --sync
$ sudo emerge app-editors/gvim
रेडहैट और रेडहैट-आधारित वितरण
$ sudo yum check-update
$ sudo yum install vim-X11
फेडोरा
$ sudo dnf check-update
$ sudo dnf install vim-X11
स्लैकवेयर और स्लैकवेयर-आधारित वितरण
$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim
OpenBSD और OpenBSD- आधारित वितरण
$ sudo pkg_add vim-x11
FreeBSD और FreeBSD- आधारित वितरण
$ sudo pkg install editors/vim
मैक ओएस एक्स पर स्थापना
रणनीति मैक ओएस एक्स के समान है: हम जीयूआई और टीयूआई दोनों प्राप्त करने के लिए जीयूआई संस्करण स्थापित करते हैं। अंत में, हमें निम्नलिखित में सक्षम होना चाहिए:
- खोजक में MacVim आइकन पर डबल-क्लिक करें,
- डॉक में MacVim आइकन पर क्लिक करें,
- MacVim GUI खोलने के लिए शेल में
$ mvim
जारी करें, - MacVim TUI खोलने के लिए शेल में
$ mvim -v
जारी करें।
नियमित रूप से स्थापित करें
डाउनलोड करें और किसी अन्य मैक ओएस एक्स एप्लिकेशन के साथ आप की तरह एक आधिकारिक स्नैपशॉट स्थापित करें।
mvim
स्क्रिप्ट को रखें जो mvim
साथ आपके $PATH
में कहीं भी आती है।
पैकेज प्रबंधक
MacPorts:$ sudo port selfupdate
$ sudo port install macvim
होमब्रू: $ brew install macvim
मैकविम को डिफ़ॉल्ट कंसोल विम बनाने के लिए:
$ brew install macvim --with-override-system-vim
विंडोज पर स्थापना
डिफ़ॉल्ट रूप से विंडोज सिस्टम पर कोई विम नहीं है। आप अधिक अप-टू-डेट और पूर्ण बिल्ड के लिए टक्सप्रोजेक्ट साइट से विम को डाउनलोड और इंस्टॉल कर सकते हैं या आप आधिकारिक विम साइट से विम को डाउनलोड और इंस्टॉल कर सकते हैं।
chocolatey
> choco install vim
स्रोत से भवन का निर्माण
अगर ऊपर दिए गए तरीके आपकी आवश्यकताओं के अनुरूप नहीं हैं, तो अभी भी अपने आप को बनाने के लिए संभव है, केवल उन विकल्पों के साथ जिनकी आपको आवश्यकता है।
इस विषय पर अपने स्वयं के अनुभाग (वर्तमान में मसौदा) में चर्चा की जाएगी।
बाहर निकलना विम
विम से बाहर निकलने के लिए, पहले सुनिश्चित करें कि आप Esc दबाकर सामान्य मोड में हैं।
-
:q
दर्ज करें (यदि आपके पास सहेजे गए परिवर्तन नहीं हैं तो आपको बाहर निकलने से रोक देगा - इसके लिए संक्षिप्त: छोड़ें)
परिवर्तनों को छोड़ने और विम से बाहर निकलने के लिए:
-
:q!
बल बाहर निकलें और परिवर्तन छोड़ने दर्ज (संक्षेप में:quit!
, साथ भ्रमित होने की नहीं:!q
), -
ZQ
एक ऐसा शॉर्टकट है जो:q!
प्रकार से करता है:q!
, -
:cq
दर्ज करें और त्रुटि वापस करें (सभी परिवर्तनों को छोड़ दें ताकि कंपाइलर इस फाइल को फिर से जमा न करे)
परिवर्तनों को सहेजने और विम से बाहर निकलने के लिए:
-
:wq
दर्ज (के लिए आशुलिपि:write
और:quit
), -
:x
दर्ज करें (उसी के रूप में:wq
, लेकिन यह नहीं लिखेंगे कि फाइल बदली नहीं गई थी), -
ZZ
एक शॉर्टकट है जो कि जैसा होता है:x
(कार्यक्षेत्र सहेजें और संपादक को छोड़ दें), -
:[range]wq!
दर्ज करें ([सीमा] में पंक्तियाँ लिखें)
एक ही बार में (कई खिड़कियों और / या टैब में भी) पास कई बफ़र्स, संलग्न पत्र के लिए a
(लोगों के साथ शुरू ऊपर कमांड में से किसी को :
)। उदाहरण के लिए, उन सभी विंडो को लिखने और छोड़ने के लिए जिनका आप उपयोग कर सकते हैं:
-
:wqa
एंटर या -
:xa
Enter - सभी परिवर्तित बफ़र्स लिखें और Vim से बाहर निकलें। यदि फ़ाइल नाम के बिना बफ़र हैं, जो आसानी से पढ़े जाते हैं या जिन्हें किसी अन्य कारण से नहीं लिखा जा सकता है, तो विम नहीं छोड़ेंगे -
:xa!
दर्ज करें - सभी बदले हुए बफ़र्स लिखें, यहां तक कि जो आसानी से पढ़े हुए हैं, और विम से बाहर निकलें। यदि फ़ाइल नाम के बिना बफ़र हैं या जिन्हें किसी अन्य कारण से नहीं लिखा जा सकता है, तो विम नहीं छोड़ेगा -
:qa
दर्ज - छोड़ने की कोशिश करें, लेकिन अगर कोई भी सहेजा नहीं गया है तो रोकें; -
:qa!
दर्ज करें - बिना सहेजे छोड़ दें ( किसी भी सहेजे न गए फ़ाइलों में परिवर्तन छोड़ें)
यदि आपने किसी फ़ाइल को निर्दिष्ट किए बिना विम खोला है और बाहर निकलने से पहले आप उस फ़ाइल को सहेजना चाहते हैं, तो आपको E32: No file name
संदेश E32: No file name
मिलेगा। आप अपनी फ़ाइल सहेज सकते हैं और उपयोग करना छोड़ सकते हैं:
-
:wq filename
दर्ज करें या; -
:x filename
दर्ज करें
स्पष्टीकरण:
: कीस्ट्रोके वास्तव में कमांड मोड को खोलता है। आदेश q
एक संक्षिप्त नाम के है quit
, w
, के write
और x
, के exit
(आप भी लिख सकते हैं :quit
, :write
और :exit
लिए यदि आप चाहते हैं)। शॉर्टकट से शुरू नहीं हो रहा है :
जैसे कि ZZ
और ZQ
सामान्य मोड कुंजी मैपिंग को संदर्भित करते हैं। आप उन्हें शॉर्टकट के रूप में सोच सकते हैं।
!
कीस्ट्रोक को कभी-कभी एक कमांड के अंत में इसके निष्पादन के लिए उपयोग किया जाता है, जो कि :q!
के मामले में परिवर्तनों को छोड़ने की अनुमति देता है :q!
। रखने की जगह !
कमांड की शुरुआत में एक अलग अर्थ है। उदाहरण के लिए, एक गलत टाइप कर सकते हैं :!q
बजाय :q!
और विम 127 त्रुटि के साथ समाप्त होगा।
यह याद रखने का एक आसान तरीका है !
कुछ निष्पादित करने पर जोर देने के एक तरीके के रूप में। ऐसे ही जब आप लिखते हैं: "मैं छोड़ना चाहता हूं!"
इंटरएक्टिव विम ट्यूटोरियल (जैसे विमटॉर)
vimtutor
टेक्स्ट एडिटिंग के सबसे बुनियादी पहलुओं को कवर करने वाला एक इंटरैक्टिव ट्यूटोरियल है।
UNIX- जैसी प्रणाली पर, आप इसके साथ ट्यूटोरियल शुरू कर सकते हैं:
$ vimtutor
विंडोज पर, "विम ट्यूटर" विंडोज मेनू में "सभी कार्यक्रमों" के तहत "विम 7.x" निर्देशिका में पाया जा सकता है।
देखें :help vimtutor
अधिक जानकारी के लिए :help vimtutor
करें।
अन्य इंटरैक्टिव ट्यूटोरियल में ये ब्राउज़र-आधारित शामिल हैं:
- विम एडवेंचर्स - वेब पर उपलब्ध विमट्यूटोर का एक इंटरैक्टिव गेम संस्करण। केवल पहले कुछ स्तर स्वतंत्र हैं।
- ओपन विम - एक इंटरैक्टिव टर्मिनल जो आपको फीडबैक के साथ मूल कमांड सिखाता है।
- विम जीनियस - एक अन्य इंटरैक्टिव टर्मिनल जिसमें मैक्रोज़ और अर्गलिस्ट सहित मध्यवर्ती और उन्नत पाठ भी शामिल हैं।
विम में संपादित केवल-पढ़ने के लिए फ़ाइल सहेजना
कभी कभी, हम जो हम का उपयोग किए बिना विम में लिखने के लिए अनुमति नहीं है एक फ़ाइल खोलने सकता है sudo
।
विम में संपादित केवल-पढ़ने के लिए फ़ाइल को सहेजने के लिए इस कमांड का उपयोग करें।
:w !sudo tee > /dev/null %
जिसे आप मैप कर सकते हैं :w!!
अपने .vimrc
:
cmap w!! w !sudo tee > /dev/null %
छवि में दिखाए अनुसार आपको एक संकेत दिया जाएगा।
O
दबाएं और फ़ाइल सहेज ली जाएगी। यह अधिक संपादन या पढ़ने के लिए vi / vim में खुला रहता है और आप टाइप करके सामान्य रूप से बाहर निकल सकते हैं :q!
चूंकि फ़ाइल अभी भी केवल-पढ़ने के लिए खुली है।
आज्ञा की व्याख्या
:w ............................ isn't modifying your file in this case,
............................ but sends the current buffer contents to
............................ a substituted shell command
!sudo ...................... call the shell 'sudo' command
tee .................. the output of the vi/vim write command is redirected
using the 'tee' command
> /dev/null ...... throws away the standard output, since we don't need
to pass it to other commands
% .... expands to the path of the current file
सूत्रों का कहना है:
सस्पेंसिंग विम
कमांड लाइन से vim
का उपयोग करते समय, आप vim
को निलंबित कर सकते हैं और अपने प्रॉम्प्ट पर वापस जा सकते हैं, वास्तव में vim
छोड़ने के बिना। इसलिए आप बाद में उसी प्रॉम्प्ट से अपना vim
सेशन वापस ले पाएंगे।
जब सामान्य मोड में (यदि नहीं, तो वहां जाने के लिए esc दबाएं ), या तो इन आदेशों को जारी करें:
:st
दर्ज करें
:sus
enter करें
:stop
दर्ज:stop
:suspend
प्रवेश:suspend
करें
वैकल्पिक रूप से, कुछ प्रणालियों पर, जब सामान्य या दृश्य मोड में, Ctrl + Z जारी करने का समान प्रभाव होगा।
नोट: यदि autowrite
सेट है, तो परिवर्तन और फ़ाइल नाम वाले बफ़र्स बाहर लिखे जाएंगे। एक जोड़ें !
बचने के लिए प्रवेश करने से पहले, जैसे। :st!
दर्ज करें ।
बाद में, जब आप अपने vim
सत्र में वापस लौटना चाहते हैं, यदि आपने कोई अन्य नौकरी निलंबित नहीं की है, तो निम्नलिखित को जारी करना आपके पूर्वग्रही नौकरी के रूप में विम को बहाल करेगा।
fg
दर्ज करें
नहीं तो आप अपने खोजने की जरूरत होगी vim
जारी करके सत्र की नौकरी आईडी jobs
दर्ज करें और फिर foregrounding मिलान नौकरियों fg %[job ID]
में प्रवेश जैसे। fg %1
दर्ज करें ।
मूल बातें
बुनियादी बातों के साथ सहज महसूस करने के लिए आवश्यकतानुसार कई बार इंटरेक्टिव विम ट्यूटोरियल चलाएं।
विम में कई मोड हैं, जैसे सामान्य मोड , इन्सर्ट मोड और कमांड-लाइन मोड ।
सामान्य मोड टेक्स्ट को संपादित और नेविगेट करने के लिए है। इस मोड में h
, j
, k
और l
कर्सर कुंजियों के अनुरूप ←
, ↓
, ↑
और →
। सामान्य मोड में अधिकांश कमांड को "गिनती" के साथ उपसर्ग किया जा सकता है, उदाहरण के लिए 3j
नीचे 3 पंक्तियों को स्थानांतरित करता है।
इन्सर्ट मोड टेक्स्ट को सीधे डालने के लिए है, इस मोड में विम अन्य सरल टेक्स्ट एडिटर्स के समान है। इन्सर्ट मोड डालने के लिए i
सामान्य मोड में प्रेस करता i
। इसे छोड़ने के लिए <ESC>
(एस्केप कुंजी) दबाएँ।
कमांड-लाइन मोड अधिक जटिल कमांड चलाने के लिए है जैसे कि फाइल को सेव करना और विम से बाहर निकलना। प्रेस :
कमांड लाइन मोड शुरू करने के लिए। इस मोड को छोड़ने के लिए आप <ESC>
भी दबा सकते हैं। फ़ाइल के उपयोग में परिवर्तन को बचाने के लिए :w
(या :write
)। अपने परिवर्तनों को सहेजे बिना विम से बाहर निकलने के लिए उपयोग करें :q!
(या :quit!
)।
ये कुछ अधिक उपयोगी कमांड हैं:
आदेश | विवरण |
---|---|
i | (सम्मिलित) वर्तमान कर्सर स्थिति से पहले डालने मोड में प्रवेश करती है |
I | करंट लाइन के पहले प्रिंट करने योग्य चरित्र से पहले इन्सर्ट मोड डालें |
a | (append) वर्तमान कर्सर स्थिति के बाद इन्सर्ट मोड में प्रवेश करता है |
A | करंट लाइन के आखिरी प्रिंट करने वाले कैरेक्टर के बाद इन्सर्ट मोड डालें |
x | वर्तमान कर्सर स्थिति पर वर्ण हटाएं |
X | वर्तमान कर्सर स्थिति में बाईं ओर वर्ण हटाएं |
w | अगले शब्द पर जाएं |
b | पिछले शब्द पर जाएँ |
0 | लाइन की शुरुआत के लिए कदम |
$ | पंक्ति के अंत में जाएं |
r | बदलें - एक चरित्र के लिए मोड की जगह में प्रवेश करती है। आपके द्वारा टाइप किया गया अगला वर्ण कर्सर के नीचे के वर्ण को बदल देगा। |
R | एंटर्स अनिश्चित काल के लिए मोड की जगह लेते हैं। आपके द्वारा टाइप किया गया प्रत्येक वर्ण कर्सर के नीचे के वर्ण को प्रतिस्थापित करेगा और कर्सर को एक से आगे बढ़ाएगा। |
s | स्थानापन्न - वर्तमान कर्सर स्थिति पर चरित्र को हटाता है और फिर सम्मिलित मोड में प्रवेश करता है |
S | वर्तमान लाइन को हटाएं जो कर्सर वर्तमान में है और इंसर्ट मोड डालें |
<Esc> , <Cc> | एक्ज़िट इन्सर्ट मोड और सामान्य मोड में वापस आता है |
u | पूर्ववत |
<Cr> | फिर से करें |
dd , dw , dl , d$ | वर्तमान रेखा को कर्सर से अगले शब्द, या वर्ण, वर्तमान स्थिति से क्रमशः वर्तमान रेखा के अंत तक काटें, ध्यान दें: D d$ के बराबर है |
cc , cw , cl | वर्तमान लाइन को क्रमशः कर्सर से अगले शब्द या वर्ण में बदलें |
yy , yw , yl , y$ | yank ("कॉपी") वर्तमान लाइन, कर्सर से अगले शब्द, या वर्ण, वर्तमान स्थिति से वर्तमान रेखा के अंत तक |
p , P | डाल ("पेस्ट") के बाद, या वर्तमान स्थिति से पहले, क्रमशः |
o , O | वर्तमान के पहले या बाद में एक नई खाली लाइन बनाने के लिए, इन्सर्ट मोड डालें |
:w | डिस्क पर वर्तमान बफर लिखें |
:q! , ZQ | बिना लिखे छोड़ दिया |
:x :wq , ZZ | लिखना और छोड़ना |
:help | मदद फ़ाइल के साथ एक विंडो खोलें |
:help {subject} | किसी विशिष्ट विषय के लिए सहायता दिखाएं |
qz | z , q को रिकॉर्डिंग समाप्त करने के लिए, @z को क्रियाओं को वापस चलाने के लिए रिकॉर्डिंग क्रियाओं को शुरू करें। z कोई भी अक्षर हो सकता है: q अक्सर सुविधा के लिए उपयोग किया जाता है। और पढ़ें: मैक्रों |
दुर्घटना की स्थिति में क्या करें
विम एक स्वैप फ़ाइल में आपके सभी सहेजे गए संपादन को सहेजता है, एक अतिरिक्त फ़ाइल जो सहेजने के बाद परिवर्तन होने पर हटा दी जाती है। स्वैप फ़ाइल का नाम आमतौर पर फ़ाइल का नाम होता है जिसे संपादित किया जाता है a .
और .swp
प्रत्यय के साथ (आप इसे साथ देख सकते हैं :sw
)।
इसलिए अगर आपकी वीआईएम प्रक्रिया समाप्त हो जाती है, तो इससे पहले कि आप अपने संपादन को बचाने का मौका दें, आप कमांड लाइन विकल्प -r
का उपयोग करके स्वैप फ़ाइल में मौजूद परिवर्तनों को अपनी वर्तमान फ़ाइल में लागू करके अपने काम को पुनर्प्राप्त कर सकते हैं। उदाहरण के लिए यदि myFile
वह फ़ाइल है जिसे आप संपादित कर रहे थे, उपयोग करें:
$ vi -r myFile
अनचाहे परिवर्तनों को ठीक करने के लिए।
यदि कोई स्वैप फ़ाइल मौजूद है, तो पुनर्प्राप्ति विकल्पों के लिए विम को आपको तुरंत संकेत देना चाहिए
$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
यदि आप (R) swp
हैं तो स्वैप फ़ाइल से परिवर्तन लागू होते हैं लेकिन स्वैप फ़ाइल को हटाया नहीं जाएगा, इसलिए यदि आप पुनर्प्राप्ति से संतुष्ट हैं, तो स्वैप फ़ाइल को बाद में हटाना न भूलें।