विम को छोड़े बिना मैं अपने vimrc को कैसे पुनः लोड करूं?


50

जब मैं अपने अंदर बदलाव करता हूं .vimrc, तो मैं आमतौर पर विम से बाहर निकलता हूं और इसे फिर से खोलता हूं। क्या नए .vimrcपरिवर्तनों को पुनः लोड करने का एक आसान तरीका है ?

जवाबों:


47

Daud:

:source $MYVIMRC

vimrcफ़ाइल को पुनः लोड करने के लिए विम के अंदर । या, एक छोटा संस्करण:

:so $MYVIMRC

जैसा कि kenorb द्वारा एक टिप्पणी में उल्लेख किया गया है ।

आपको इन रूपों में से किसी एक को मैप करना भी उपयोगी हो सकता है। उदाहरण के लिए:

nnoremap <Leader>r :source $MYVIMRC<CR>

2
शॉर्टकट: :so $MYVIMRC
केनोरब

@kenorb: मैंने इस संभावना को जोड़ा है; इसका उल्लेख करने के लिए धन्यवाद!
पॉल गेसलर

:so $m<टैब> Tab अतिरिक्त-शॉर्ट-कट
एरोन थोमा

3
के साथ दो और कीस्ट्रोक्स बचाओ :so %%इस मामले में आपके द्वारा संपादित बफर के वर्तमान फ़ाइल नाम पर सेट किया गया है$MYVIMRC
cbaumhardt

1
अब तक ऐसा करने का सबसे आसान तरीका यह है कि आप सहेजे गए पर vimrc पुनः लोड करें - अन्य उत्तरों की जांच करें।
टॉम हेल

20

अगर आप सिर्फ एक बार फाइल को एक बार फिर से लोड करना चाहते हैं

:source $MYVIMRC

जैसा कि पॉल ने लिखा है कि सही है। यदि आप अपने vimrc को अक्सर बदलते रहते हैं, तो आप अपनी vimrc फाइल में कुछ इस तरह जोड़ सकते हैं:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

जब आप इसे लिखेंगे तो यह फ़ाइल पुनः लोड हो जाएगी (उस विम सत्र के भीतर)


1
johannes: क्या हमें फ़ाइल को स्वचालित रूप से स्रोत करने के लिए इस कमांड के माध्यम से .vimrc संपादित करने की आवश्यकता है?
साईं मनोज कुमार यदलापती

5
नोट vimrc फ़ाइल को अन्य चीजें भी कहा जा सकता है: उदाहरण के लिए vimrc (यदि यह ~ / .vim में है)।
user50136

1
@SaiManojKumarYadlapati हाँ, एएस ने कहा कि यह एक ही उल्टी सत्र होना है। बुफ़राइटाइटपोस्ट को ट्रिगर किया जाता है जब उल्टी लिखती है
जोहान्स

इसके साथ समस्याएँ: (1) के साथ काम नहीं करता है .vim/vimrc, (2) डुप्लिकेट बनायेगा autocmdताकि प्रत्येक बाद की बचत धीमी हो जाये क्योंकि फाइल को कई बार पुनः लोड किया जायेगा, (3) vim- छोटे के साथ व्यवहार नहीं करता है जो नहीं करता है ऑटोकैड है और अभी भी कुछ लिनक्स वितरण पर डिफ़ॉल्ट है। इन मुद्दों को संबोधित करने के लिए मेरा जवाब देखें।
टॉम हेल

2
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

करने के लिए स्वचालित रूप से बचाने पर पुनः लोड, जोड़ने अपने लिए निम्न $MYVIMRC:

if has ('autocmd') " Remain compatible with earlier versions
 augroup vimrc     " Source vim configuration upon save
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

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

:so %

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

विशेषताएं:

  • उपयोगकर्ता को बताता है कि क्या हुआ है (लॉगिंग भी :messages)
  • कॉन्फ़िगरेशन फ़ाइलों के लिए विभिन्न नामों को संभालता है
  • यह सुनिश्चित करता है कि यह केवल वास्तविक कॉन्फ़िगरेशन फ़ाइल से मेल खाता है (अन्य निर्देशिकाओं में प्रतियों की उपेक्षा करता है, या एक fugitive://भिन्न)
  • उपयोग करने पर कोई त्रुटि उत्पन्न नहीं होगी vim-tiny

बेशक, स्वचालित पुन: लोड केवल तभी होगा जब आप अपने vimrcविम को संपादित करेंगे ।

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