Come posso ottenere VIM per conservare la cronologia degli annullamenti?


36

Se sto modificando due file con vim, passare all'altro file (: bnext,: bprev) sembra eliminare la cronologia degli annullamenti dal file aperto - premendo il tasto 'u' viene riportato "Già alla modifica più vecchia".

Per esempio:

  1. vim testfile1 testfile2
  2. aggiungi alcune cose a testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. EEP! impossibile annullare!

Esiste un modo per conservare questa cronologia per i buffer non visibili?


dovrebbe essere invece in superutente o stackoverflow?
Ressu,

@Ressu - buon punto, come possiamo dirlo? Meta domanda postata: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr,

A seconda del risultato di questa meta domanda, è probabile che lo elimini.
Jeremy Kerr,

Risposte:


42

La versione più recente di vim (7.3) ha un annullamento persistente, in modo da poter apportare una modifica, chiudere completamente vim (anche arrestare e riavviare), riavviare vim e annullare. Nel tuo .vimrc:

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

11
Nota che devi prima creare la directory, vim non lo fa automaticamente. I file di annullamento vengono salvati utilizzando il percorso del file system (contemporaneamente durante il salvataggio del file). Se ci si trova /home/peter, la modifica .bashrccreerà il file /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn,


1

Puoi usare Viewports .
"vim -o testfile1 testfile2" - apre i file in una finestra divisa.
": sp nomefile" - dividi e apri "nomefile".
": vsp nomefile" - divisione verticale e apertura "nomefile".
"Ctrl + w + freccia" - Cambia viewport.


Preferirei non mantenere un buffer visibile in modo permanente per ogni file; non è insolito avere> 20 file aperti contemporaneamente.
Jeremy Kerr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.