खोज…


वाक्य - विन्यास

  • : रिलेटिवनंबर सेट करें
  • : संख्या निर्धारित करें
  • : सेट नॉनंबर /: सेट नोनू
  • : लोक निर्माण विभाग

टिप्पणियों

यह स्वचालित पुनः लोड केवल तभी होगा जब आप अपने vimrc संस्करण को vim के पूर्ण संस्करण में संपादित करते हैं जो autocmd का समर्थन करता है।

त्वरित "थ्रोअवे" मैक्रोज़

इसे अपने vimrc में जोड़ें:

nnoremap Q @q

"थ्रोअवे" मैक्रो की रिकॉर्डिंग शुरू करने के लिए, qq उपयोग करें। रिकॉर्डिंग हिट को समाप्त करने के लिए q (दोनों के लिए सामान्य मोड में)।

रिकॉर्ड किए गए मैक्रो को निष्पादित करने के लिए, Q उपयोग करें।

यह मैक्रोज़ के लिए उपयोगी है जिसे आपको एक पंक्ति में कई बार दोहराने की आवश्यकता है लेकिन बाद में फिर से उपयोग करने की संभावना नहीं होगी।

विम के अंदर पथ पूरा करने की सुविधा का उपयोग करना

यह बहुत आम है, आप किसी फ़ाइल या फ़ोल्डर के लिए एक पथ याद करते हैं, आप विम खोलते हैं और जो आपने अभी याद किया है उसे लिखने की कोशिश करते हैं, लेकिन आप 100% सुनिश्चित नहीं हैं कि यह सही है, इसलिए आप संपादक को बंद करते हैं और शुरू करते हैं।

जब आप पथ पूरा करने की सुविधा चाहते हैं, और आपके पास एक फ़ाइल /home/ubuntu/my_folder/my_file और आप पिछले एक के पथ के लिए एक और फ़ाइल संदर्भित संपादित कर रहे हैं:

इन्सर्ट मोड डालें: इंसर्ट करें या जैसा चाहें वैसा करें। अगला, लिखना /h । जब कर्सर h नीचे है, तो Ctrl x दबाएं और फिर Ctrl f करें ताकि संपादक इसे /home/ पूरा कर /home/ क्योंकि पैटर्न /h अद्वितीय है

अब, मान लीजिए कि आपके पास दो फ़ोल्डर हैं /home/ubuntu/ my_folder_1 my_folder_2 कहा जाता है

और आप पथ /home/ubuntu/my_folder_2

हमेशा की तरह:

इन्सर्ट मोड डालें

लिखने /h और Ctrl x दबाएँ और फिर Ctrl f । अब आपके पास /home/ नेक्स्ट u u after / home / है और Ctrl x और फिर Ctrl f दबाएं । अब, आपके पास /home/ubuntu/ क्योंकि वह मार्ग अद्वितीय है। अब, my /home/ubuntu/ लिखने के बाद Ctrl x दबाएं और फिर Ctrl f करें । संपादक my_folder_ तक आपके शब्द को पूरा कर देगा और आप डायरेक्टरी ट्री देखेंगे, ताकि आप जो चाहते हैं उसे चुनने के लिए तीर कुंजियों का उपयोग करें।

सापेक्ष रेखा संख्याओं को चालू करें

पाठ की कुछ पंक्तियों को हटाने के लिए जब आप लाइनों को हटाने के लिए सटीक संख्या नहीं जानते हैं, तो आप 10dd , 5dd , 3 3dd कोशिश करते हैं जब तक कि आप सभी लाइनों को हटा नहीं देते।

सापेक्ष पंक्ति संख्या इस समस्या को हल करती है, मान लें कि हमारे पास एक फ़ाइल है:

sometimes, you see a block of 
text. You want to remove 
it but you 
cannot directly get the 
exact number of 
lines to delete 
so you try 
10d , 5d 
3d until 
you
remove all the block.

नोर्मल मोड डालें: Esc

अब, निष्पादित करें :set relativenumber । एक बार फ़ाइल के रूप में प्रदर्शित किया जाएगा:

3 sometimes, you see a block of
2 text. You want to remove
1 it but you
0 cannot directly get the
1 exact number of
2 lines to delete
3 so you try
4 10d , 5d
5 3d until
6 you
7 remove all the block.

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

अब आप अपने सामान्य कमांड को 6dd तरह निष्पादित कर सकते हैं और आप लाइनों की संख्या के बारे में सुनिश्चित हैं।

आप एक ही कमांड के संक्षिप्त रूप का भी उपयोग कर सकते हैं :set rnu रिश्तेदार संख्याओं को चालू करने के लिए :set nornu और उसी को बंद करने के लिए :set nornu

यदि आप भी :set number या है :set number पर पहले से ही, आप लाइन की लाइन नंबर प्राप्त करेंगे जिसमें कर्सर है।

3 sometimes, you see a block of 
2 text. You want to remove 
1 it but you 
4 cannot directly get the 
1 exact number of 
2 lines to delete 
3 so you try 
4 10d , 5d 
5 3d until 
6 you 
7 remove all the block. 

लाइन नंबर देखना

डिफॉल्ट व्यू एंटर से लाइन नंबर देखने के लिए

:set number

लाइन नंबर छिपाने के लिए

:set nonumber

ऊपर के लिए एक शॉर्टकट भी है। nu number समान है।

:set nonu

लाइन नंबर छिपाने के लिए, हम भी उपयोग कर सकते हैं

:set nu!

इन्सर्ट मोड से बाहर आने के लिए मैपिंग

बहुत सारे विम उपयोगकर्ता Esc तक पहुंचने में बहुत मुश्किल पाते हैं, और होम मैप से पहुंचने के लिए एक और मैपिंग ढूंढना आसान बनाते हैं। ध्यान दें कि Ctrl - [ अंग्रेजी कीबोर्ड पर Esc के समतुल्य हो सकता है, और पहुंचने में बहुत आसान है।

जे के

inoremap jk <ESC> 

यह एक ट्रिगर करने के लिए वास्तव में आसान है; बस एक ही समय में घर की पंक्ति पर अपनी पहली दो उंगलियों को तोड़ें। गलती से भी ट्रिगर करना मुश्किल है क्योंकि "jk" कभी भी किसी भी अंग्रेजी शब्द में दिखाई नहीं देता है, और यदि आप सामान्य मोड में हैं तो यह कुछ भी नहीं करता है। यदि आप "लाठी" टाइप नहीं करते हैं, तो inoremap kj <ESC> जोड़ने पर भी विचार करें, ताकि आपको दो चाबियों के समय के बारे में चिंता करने की आवश्यकता न हो।

कैप्स लॉक

लिनक्स

लिनक्स पर, आप कैप्स लॉक को Esc के समान कार्य करने के लिए xmodmap का उपयोग कर सकते हैं। इसे एक फ़ाइल में रखें:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

फिर xmodmap file चलाएँ। यह कैप्स लॉक को Esc में बदल देता है

खिड़कियाँ

विंडोज पर आप SharpKey या AutoHotkey का उपयोग कर सकते हैं।

मैक ओ एस

यदि आपके पास macOS 10.12.1 या बाद में है, तो आप सिस्टम प्रेफरेंस का उपयोग करके एस्केप से कैप्स लॉक को रिमैप कर सकते हैं। कीबोर्ड का चयन करें, कीबोर्ड टैब पर जाएं, और संशोधक कुंजी पर क्लिक करें।

कीबोर्ड प्राथमिकताएं

निर्देशिका और / या आपके द्वारा संपादित की जा रही फ़ाइल का पथ कैसे जानें

आपकी फ़ाइल जिस निर्देशिका में है, उसका पथ जानने के लिए आप इसका उपयोग कर सकते हैं:

कमांड मोड में प्रवेश करने के लिए Esc

:pwd

यह इस तरह से संपादक के तल पर निर्देशिका के लिए मार्ग प्रिंट करेगा

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

अब, यदि आप उस फ़ाइल का नाम जानना चाहते हैं जिसे आप अपेक्षाकृत कार्यशील निर्देशिका में संपादित कर रहे हैं, तो आप उपयोग कर सकते हैं:

कमांड मोड CTRL G दर्ज करने के लिए Esc

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

अंत में आप जिस फ़ाइल को संपादित कर रहे हैं, उसका पूर्ण पथ प्राप्त करने के लिए उपयोग करें

कमांड मोड में प्रवेश करने के लिए Esc ,

1 और फिर CTRL जी

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

एक फ़ंक्शन ब्लॉक में खोजें

कर्सर के आसपास एक {} ब्लॉक के भीतर पाठ foo खोज करने के लिए निम्नलिखित कमांड का उपयोग करें ( <ESC> - एस्केप कुंजी, <CR> - कुंजी दर्ज करें):

vi{<ESC>/\%Vfoo<CR>

अब आप n और p दबाकर ब्लॉक के भीतर मैचों के बीच कूद सकते हैं। यदि आपके पास hlsearch विकल्प सक्षम है तो यह सभी मैचों को उजागर करेगा। \%V एक विशेष खोज पैटर्न हिस्सा है, जो विम को केवल चुने हुए क्षेत्र में खोज करने के लिए कहता है। आप इस तरह से एक मैपिंग भी कर सकते हैं:

:vnoremap g/ <ESC>/\%V

इसके बाद उपरोक्त कमांड को निम्नलिखित के लिए छोटा कर दिया गया है:

vi{g/foo<CR>

एक अन्य उपयोगी चाल पैटर्न वाली सभी लाइनों को प्रिंट करना है:

vi{
:'<,'>g/foo/#

'<,'> सीमा स्वचालित रूप से डाली जाती है।

देखें :help range और :help :g

पाए गए लाइन को कॉपी करें, स्थानांतरित करें या हटाएं

बहुत सारे उपयोगकर्ता खुद को ऐसी स्थिति में पाते हैं जहां वे केवल एक पंक्ति को कॉपी करना, स्थानांतरित करना या हटाना चाहते हैं और वापस उसी स्थान पर लौट जाते हैं जहां वे थे।

आम तौर पर, यदि आप एक ऐसी पंक्ति को आगे बढ़ाना चाहते हैं जिसमें वर्तमान रेखा के नीचे lot शब्द हो तो आप कुछ इस तरह लिखेंगे:

/lot<Esc>dd<C-o>p

लेकिन उत्पादकता बढ़ाने के लिए आप इन मामलों में इस शॉर्टकट का उपयोग कर सकते हैं:

" It's recommended to turn on incremental search when doing so
set incsearch

" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``

तो इस तरह एक खोज:

/lot$m

जब आप खोज शुरू करते हैं तो लाइन आपके कर्सर से lot नीचे होती है।

एक फ़ाइल लिखें अगर आप vim शुरू करने से पहले `sudo` को भूल जाते हैं

यह कमांड sudo अधिकारों के साथ खुली फाइल को बचाएगा

:w !sudo tee % >/dev/null

तुम भी w!! नक्शा कर सकते हैं w!! किसी फ़ाइल को रूट के रूप में लिखने के लिए

:cnoremap w!! w !sudo tee % >/dev/null

स्वचालित रूप से सहेजें पर vimrc पुनः लोड करें

सहेजने पर स्वतः vimrc पुनः लोड करने के लिए, अपने vimrc में निम्नलिखित जोड़ें:

if has('autocmd') " ignore this section if your vim does not support autocommands
    augroup reload_vimrc
        autocmd!
        autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
    augroup END
endif

और फिर आखिरी बार, टाइप करें:

:so $MYVIMRC

अगली बार जब आप अपने vimrc सेव करेंगे, तो यह अपने आप लोड हो जाएगा।

यदि आप विम-एयरलाइन का उपयोग कर रहे हैं तो nested उपयोगी है। एयरलाइन को लोड करने की प्रक्रिया कुछ ऑटोकॉमंड को ट्रिगर करती है, लेकिन जब से आप एक ऑटोकेमैंड को निष्पादित करने की प्रक्रिया में होते हैं, तो वे छोड़ देते हैं। nested नेस्टेड ऑटोकॉमैंड को ट्रिगर करने की अनुमति देता है और एयरलाइन को ठीक से लोड करने की अनुमति देता है।

कमांड लाइन पूरी

कमांड लाइन के लिए पूर्ण सुझाव देने के लिए wildmenu सेट करें।
निम्नलिखित को निष्पादित करें

set wildmenu
set wildmode=list:longest,full

अब अगर आप कहते हैं :color टैब ,

आपको मिलेगा

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow