Arabellekteki tüm dosyaları vim'deki diskten yenile


124

Bir dosyayı diskteki sürümden yenileme komutu :e!

Arabellekteki tüm dosyalar için aynısını nasıl yapabilirim?

Arka plan: Buna ihtiyacım var çünkü git'i bir arabellek içeren bir vim açık birden fazla dal ile kullanıyorum. Bir şubeyi kontrol ettiğimde, vim'in yenilenmesini istiyorum.

Yanıtlar:


87

Belgeleri okuyun, bufdoistediğiniz şeyi yapmalıdır.


33
tamam harika,: bufdo e! bunu yapacak. Ancak her seferinde bir hızlı Yükleme (E / H) vardır. Bundan nasıl kurtulabilirim?
odwl

21
Komutu set noconfirmkullanmadan önce kullanın bufdo( set confirmdaha sonra yeniden uygulanabilir hale getirin).
pmf

22
bufdo etuhaf bir şekilde tüm arabellekleri sözdizimi vurgulanmadan bırakır
Steven Lu

4
@StevenLu PaulFenney'nin aşağıdaki yanıtını kontrol edin.
DBedrenko

12
İnsanlar neden buna oy veriyor? Bu sadece bir cevap değil, aynı zamanda size yönlendirdiği yön, söz dizimi vurgulamanızın yeniden yükledikten sonra devre dışı bırakıldığı anlamına gelir.
Dmitry Minkovsky

120

:checkt[ime]Komut bu çok amaç için tasarlanmıştır.

Değişen arabellekleri yeniden yüklemenizi isteyecektir; Eğer istemi atlamak isterseniz, :set autoreadönceden yapabilirsiniz (kaydedilmemiş yerel değişikliklerin bulunduğu tamponlar hakkında hala bir uyarı alırsınız).

Aynı zamanda, Steven Lu'nun kabul edilen cevapta bahsettiği sözdizimi vurgulayan konuyu da önler; :bufdotasarıma göre sözdizimi vurgulamayı kapatır .

Şu yolla bulunur: http://vim.1045645.n5.nabble.com/Bug-report-bufdo-e-breaking-syntax-highlighting-on-displayed-buffers-tp1209995p1209998.html


19

İşte .vimrc dosyama koyduğum şey:

fun! PullAndRefresh()
  set noconfirm
  !git pull
  bufdo e!
  set confirm
endfun

nmap <leader>gr call PullAndRefresh()

7

Kimden :help autoread:

Bir dosyanın Vim dışında değiştirildiği tespit edildiğinde ve Vim içinde değiştirilmediğinde, otomatik olarak tekrar okuyun. Dosya silindiğinde bu yapılmaz.

Benim gibi, her zaman pasif olarak eski ama değiştirilmemiş arabellekleri yeniden yüklemek istiyorsan , bu işi bitirmesi gerektiği gibi görünüyor.

Bununla birlikte son bir detayıdır zaman vim eski tampon fark eder. Bununla zorlanabilir checktime. Odak etkinlikleri ayarladıysanız , odaklandığımızda şu şekilde çalışabiliriz checktime:

set autoread
autocmd FocusGained * checktime

Bu cevabın bazı ilginç detayları da var.


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.