सवाल आप vim को पुनरारंभ किए बिना अपनी .vimrc फ़ाइल को फिर से लोड कैसे करते हैं?


क्या आप अपना संपादन कर सकते हैं .vimrc फ़ाइल को दोबारा शुरू करने के बिना इसे पुनः लोड करें?


504
2018-04-17 14:18


मूल




जवाब:


यदि आप इसे संपादित कर रहे हैं, तो आप इसे पुनः लोड कर सकते हैं:

:so %

% वर्तमान फ़ाइल नाम के लिए खड़ा है (देखें :h current-file) तथा :so के लिए छोटा है :source, जो निर्दिष्ट फ़ाइल की सामग्री को पढ़ता है और इसे विम कोड के रूप में मानता है।

आम तौर पर, वर्तमान में सक्रिय .vimrc को पुनः लोड करने के लिए, निम्न का उपयोग करें (देखें दैनिक विम):

:so $MYVIMRC

620
2018-04-17 14:24



अच्छी तरह से देखिए stackoverflow.com/questions/803464/... - mrucci
तथा :so ~/.vimrc यूनिक्स पर भी काम करना चाहिए - Yab
: तो ~ / _vimrc विंडोज़ पर काम करता है। बेशक, मैं अपने विंडोज़ होम निर्देशिका में अपना _vimrc रखता हूं, अन्यथा यह काम नहीं करेगा। यह देखने के लिए कि विम आपके होम निर्देशिका को क्या मानता है, इसका उपयोग करें :echo expand("~")। - Daniel Miladinov
ध्यान दें कि यदि कुंजीपटल मैपिंग पहले से ही मौजूद हैं, तो वे नए vimrc से हटा दिए जाने पर भी मिटा नहीं जाएंगे - Phani


इससे भी बेहतर, आप अपने बदलावों को देखने के लिए विम को कॉन्फ़िगर करते हैं .vimrc और स्वचालित रूप से कॉन्फ़िगर पुनः लोड करें।

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

स्रोत: एसओ पर यह जवाब

नोट: यह विशेष विधि विम कॉन्फ़िगर फ़ाइल नामों की कई भिन्नताओं के लिए देखती है ताकि यह जीयूआई विम, विंडोज विम इत्यादि के साथ संगत हो।


76
2018-04-28 09:32



यह विधि कितनी सक्षम है? - Alexej Magura
मुझे लगता है कि इस तरह के कमांड का उपयोग कभी-कभी मेरे एनवीआईएम को कुछ सेकंड या उससे अधिक समय तक लटकता है। - jdhao


कुंजी मैपिंग्स

" 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 विम में


9
2017-09-02 14:12





याद रखने / टाइप करने का एक विकल्प :so $MYVIMRC क्या ये मैपिंग्स है यह आपको जल्दी से vimrc संपादित करने देता है (ev) या स्रोत vimrc (sv)।

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     

5
2018-06-17 10:36