Geri alma geçmişini korumak için vim'i nasıl edinebilirim?


36

İki dosyayı vim ile düzenliyorsam, diğer dosyaya geçmek (: bnext,: bprev), açık dosyadan geri alma geçmişini bırakıyor gibi görünüyor - 'u' anahtar raporlarına basarak "Zaten en eski değişiklik".

Örneğin:

  1. vim testfile1 testfile2
  2. testfile1'e bir şeyler ekleyin
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! geri alamazsınız!

Bu geçmişi görünmeyen tamponlar için saklamanın bir yolu var mı?


bunun yerine süper kullanıcı veya yığın akışı mı olmalı?
Ressu

@Ressu - iyi nokta, nasıl söyleriz? Meta soru gönderildi: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr

Bu meta sorunun sonucuna bağlı olarak, bunu silmeyi düşünüyorum.
Jeremy Kerr

Yanıtlar:


42

Vim'in (7.3) en yeni sürümü kalıcı bir şekilde geri döndü, böylece bir değişiklik yapabilir, vimi tamamen kapatabilir (hatta kapatıp yeniden başlatabilirsiniz), vim'i yeniden başlatabilir ve geri alabilirsiniz. Senin içinde .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/

11
Önce dizini oluşturmanız gerektiğini unutmayın, vim bunu otomatik olarak yapmaz. Geri alma dosyaları, dosya sistemi yolu kullanılarak kaydedilir (aynı zamanda dosyayı kaydederken). İçerideyseniz /home/peter, düzenleme .bashrcdosyayı oluşturur /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn


1

Viewport'ları kullanabilirsiniz .
"vim -o testfile1 testfile2" - dosyaları bölünmüş pencerede açın.
": sp dosyaadı" - "dosyaadı" nı ayırıp açın.
": vsp dosyaadı" - dikey bölme ve "dosyaadı" nı açın.
"Ctrl + w + ok" - Görünüm çerçevesini değiştir.


Her dosya için kalıcı olarak görülebilir bir arabellek tutmamayı tercih ederim; Bir seferde> 20 dosyanın açık olması alışılmadık bir durum değildir.
Jeremy Kerr
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.