Vimrc'imi Vim'den ayrılmadan nasıl yeniden yüklerim?


50

Değişiklik yaptığımda .vimrc, genellikle Vim'den çıkıp tekrar açarım. Yeni .vimrcdeğişiklikleri yeniden yüklemenin daha kolay bir yolu var mı ?

Yanıtlar:


47

Çalıştırmak:

:source $MYVIMRC

vimrcdosyayı yeniden yüklemek için Vim'in içinde . Veya daha kısa bir sürüm:

:so $MYVIMRC

kenorb tarafından yapılan yorumda belirtildiği gibi .

Ayrıca, bu formlardan herhangi birini bir anahtara haritalamakta yararlı olabilir. Örneğin:

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

2
Kısayol: :so $MYVIMRC.
kenorb

@ kenorb: Bu olasılığı ekledim; Bahsettiğin için teşekkürler!
Paul Gessler

:so $m<Tab> ← ekstra kestirme
Aaron Thoma

3
İki tuş vuruşuyla daha tasarruf edin :so %. %Bu durumda düzenlediğiniz tamponun mevcut dosya adına ayarlanmıştır, bu durumda$MYVIMRC
cbaumhardt

1
Bunu yapmanın en kolay yolu kayıttan sonra vimrc'yi otomatik olarak yeniden yüklemektir - diğer cevapları kontrol edin.
Tom Hale

20

Sadece arada bir dosyayı yeniden yüklemek istiyorsanız

:source $MYVIMRC

Paul'un yazdığı gibi doğru. Vimrc'nizi sık sık değiştirirseniz, vimrc dosyanıza bunun gibi bir şey ekleyebilirsiniz:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

Bu dosyayı yazdığınızda yeniden yükleyecektir (o vim oturumunun içinden)


1
johannes: Bu komutun dosyayı otomatik olarak kaynaklaması için .vimrc aracısını vim olarak düzenlememiz gerekiyor mu?
Sai Manoj Kumar Yadlapati

5
Bir vimrc dosyasının başka şeylere de çağrılabileceğini unutmayın: örneğin vimrc (eğer ~ / .vim ise).
user50136

1
@SaiManojKumarYadlapati Evet, AS bunun aynı vom seansı olması gerektiğini söyledi. Bufwritepost, kusmuk yazdığında tetiklenir
johannes

Bununla ilgili problemler: (1) ile çalışmaz .vim/vimrc, (2) yinelenen autocmds oluşturur, böylece her seferinde kaydetme işlemi daha yavaş olacaktır, çünkü dosya birden çok kez tekrar yüklenecektir, (3) çalışmayan vim-tiny ile davranmaz. autocmd var ve hala bazı linux dağıtımlarında varsayılan. Bu sorunları çözmek için cevabımı görün.
Tom Hale

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

İçin otomatik kaydetme üzerine 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 söyler (giriş yapması :messages)
  • Yapılandırma dosyaları için çeşitli adları işler
  • Sadece gerçek yapılandırma dosyası (diğer dizinleri yoksaydıklarınız kopyaları veya maç wil Sağlar fugitive://diff)
  • Kullanıyorsanız hata oluşturmaz vim-tiny

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

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.