Vim'i yeniden başlatmadan .vimrc dosyanızı nasıl yeniden yüklersiniz?


534

.vimrcVim'i yeniden başlatmak zorunda kalmadan dosyanızı düzenleyebilir ve yeniden yükleyebilir misiniz?

Yanıtlar:


661

Düzenliyorsanız, şunlarla yeniden yükleyebilirsiniz:

:so %

%geçerli dosya adını (bkz. :h current-file) gösterir ve belirtilen dosyanın içeriğini okuyan ve onu Vim kodu olarak kabul eden :sokısadır :source.

Genel olarak, aktif durumda olan aktif .vimrc'i tekrar yüklemek için aşağıdakileri kullanın (bkz. Günlük Vim ):

:so $MYVIMRC


36
ve :so ~/.vimrcunix de çalışmalı
Yab

3
: yani ~ / _vimrc pencerelerde çalışır. Tabii ki, _vimrc'imi windows home dizininde tutuyorum, yoksa bu işe yaramayacak. Vim'in ana dizininizde ne düşündüğünü görmek için kullanın :echo expand("~").
Daniel Miladinov

3
Klavye eşlemeleri önceden yapılmışsa, yeni
vimrc

Ya :so ~/.vim/gvimrcda nereye koyduysanız nereye
NeilG

79

Daha da iyisi, Vim'i, değişikliklerinizi izleyecek .vimrcve config'i otomatik olarak yeniden yükleyecek şekilde yapılandırırsınız.

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

Kaynak: SO bu cevap

Not: Bu özel yöntem, birçok Vim config dosya adı varyasyonunu izler, böylece GUI Vim, Windows Vim, vb. İle uyumludur.


2
Bu yöntem ne kadar performanslıdır?
Alexej Magura

Bu tür komutları kullanmanın bazen nvimimi bir kaç saniye veya daha uzun süre kapattığını görüyorum.
jdhao

11

Anahtar eşlemeler

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

Tamamen otomatikleştirilmiş çözüm

İçin otomatik kaydetme işleminin ardından yeniden senin aşağıdakileri ekleyin $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

ve sonra son kez şunu yazın:

:so %

Bir dahaki sefere kaydettiğinizde vimrc, otomatik olarak yeniden yüklenir.

Özellikleri:

  • Kullanıcıya ne olduğunu anlatır (aynı zamanda oturum açıyor :messages)
  • Yapılandırma dosyaları için çeşitli adları işler
  • Sadece gerçek yapılandırma dosyasını eşleştirmek (diğer dizinleri kopyalar yok sayar ya da wil sağlar fugitive://fark)
  • Kullanıyorsanız hata oluşturmaz vim-tiny

Elbette, otomatik yeniden yükleme işlemi yalnızca vimrcvim'inizi düzenlerseniz gerçekleşir .


5

Hatırlama / yazmaya alternatif bir alternatif :so $MYVIMRCbu eşlemeler. Hızlı bir şekilde vimrc ( ev) veya kaynak vimrc ( sv) düzenlemenizi sağlar .

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.