Как мне получить 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.
Лекенштейн


1

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


Я бы предпочел не хранить постоянно видимый буфер для каждого файла; нет ничего необычного в том, чтобы одновременно открывать> 20 файлов.
Джереми Керр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.