Bagaimana cara mendapatkan vim untuk menyimpan riwayat pembatalannya?


36

Jika saya mengedit dua file dengan vim, mengubah ke file lain (: bnext,: bprev) tampaknya menghapus riwayat undo dari file yang terbuka - memukul laporan kunci 'u' "Sudah ada di perubahan tertua".

Sebagai contoh:

  1. vim testfile1 testfile2
  2. tambahkan beberapa hal ke testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! tidak bisa membatalkan!

Apakah ada cara untuk menyimpan riwayat ini untuk buffer yang tidak terlihat?


haruskah ini di superuser atau stackoverflow?
Ressu

@Ressu - poin bagus, bagaimana kita tahu? Pertanyaan meta diposting: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr

Bergantung pada hasil dari pertanyaan meta itu, saya cenderung menghapus ini.
Jeremy Kerr

Jawaban:


42

Versi terbaru vim (7.3) memiliki undo yang persisten, sehingga Anda dapat membuat perubahan, menutup vim sepenuhnya (bahkan shutdown dan restart), restart vim, dan undo. Di Anda .vimrc:

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

11
Perhatikan bahwa Anda harus membuat direktori terlebih dahulu, vim tidak melakukannya secara otomatis. Undo file disimpan menggunakan jalur sistem file (pada saat yang sama saat menyimpan file). Jika Anda masuk /home/peter, maka pengeditan .bashrcakan membuat file /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn


1

Anda dapat menggunakan Viewports .
"vim -o testfile1 testfile2" - buka file di jendela terpisah.
": sp filename" - pisah dan buka "filename".
": vsp filename" - perpecahan vertikal dan buka "filename".
"Ctrl + w + panah" - Ubah viewport.


Saya lebih suka tidak menyimpan buffer yang terlihat secara permanen untuk setiap file; bukan tidak biasa memiliki> 20 file yang terbuka sekaligus.
Jeremy Kerr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.