Как мне получить vim, чтобы сохранить историю отмен?

36

Если я редактирую два файла с помощью vim, переход на другой файл (: bnext,: bprev), по-видимому, удаляет историю отмен из открытого файла - нажатие клавиши «u» выдает сообщение «Уже при самом старом изменении».

Например:

  1. vim testfile1 testfile2
  2. добавить некоторые вещи в testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. EEP! не могу отменить!

Есть ли способ сохранить эту историю для невидимых буферов?

Джереми Керр
источник
должно ли это быть в superuser или stackoverflow вместо этого?
Ressu
@Ressu - хороший вопрос, как мы можем сказать? Опубликован
Джереми Керр
В зависимости от результата этого мета-вопроса, я могу удалить это.
Джереми Керр

Ответы:

42

В новейшей версии vim (7.3) есть постоянная отмена, так что вы можете внести изменения, полностью закрыть vim (даже выключить и перезапустить), перезапустить vim и отменить. В вашем .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/
радостный
источник
11
Обратите внимание, что сначала вы должны создать каталог, vim не делает этого автоматически. Отменить файлы сохраняются с использованием пути файловой системы (в то же время при сохранении файла). Если вы находитесь в /home/peter, то редактирование .bashrcсоздаст файл /home/peter/.vimundo/%home%peter%.bashrc.
Лекенштейн
19

Похоже, это сделает это:

:set hidden

(в .vimrc)

Джереми Керр
источник
1

Вы можете использовать Viewports .
"vim -o testfile1 testfile2" - открыть файлы в разделенном окне.
": sp имя файла" - разделить и открыть "имя файла".
": vsp filename" - вертикальное разделение и открытие "filename".
«Ctrl + w + стрелка» - изменить видовой экран.

yevhene
источник
Я бы предпочел не хранить постоянно видимый буфер для каждого файла; нет ничего необычного в том, чтобы одновременно открывать> 20 файлов.
Джереми Керр