Como obtenho o vim para manter seu histórico de desfazer?

36

Se eu estiver editando dois arquivos com o vim, mudar para o outro arquivo (: bnext,: bprev) parece excluir o histórico de desfazer do arquivo aberto - pressionando os relatórios 'u' key "Já está na alteração mais antiga".

Por exemplo:

  1. vim testfile1 testfile2
  2. adicione algumas coisas ao testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! não pode desfazer!

Existe alguma maneira de manter esse histórico para buffers não visíveis?

Jeremy Kerr
fonte
isso deveria estar no superusuário ou no stackoverflow?
Ressu
@Ressu - bom ponto, como sabemos? Pergunta Meta postou: meta.ubuntu.stackexchange.com/questions/47/...
Jeremy Kerr
Dependendo do resultado dessa meta questão, provavelmente vou excluir isso.
Jeremy Kerr

Respostas:

42

A versão mais recente do vim (7.3) desfaz persistentemente, para que você possa fazer uma alteração, feche o vim completamente (até desligue e reinicie), reinicie o vim e desfaça. No seu .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/
frabjous
fonte
11
Observe que você deve criar o diretório primeiro, o vim não faz isso automaticamente. Desfazer arquivos são salvos usando o caminho do sistema de arquivos (ao mesmo tempo em que salva o arquivo). Se você estiver participando /home/peter, a edição .bashrccriará o arquivo /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn
19

Parece que isso fará isso:

:set hidden

(em .vimrc)

Jeremy Kerr
fonte
1

Você pode usar as viewports .
"vim -o testfile1 testfile2" - abre arquivos na janela dividida.
": sp filename" - divida e abra "filename".
": vsp filename" - divide verticalmente e abre "filename".
"Ctrl + w + arrow" - Altera a janela de exibição.

Yevhene
fonte
Prefiro não manter um buffer permanentemente visível para cada arquivo; não é incomum ter> 20 arquivos abertos ao mesmo tempo.
Jeremy Kerr