Як мені отримати vim для збереження його історії скасування?


36

Якщо я редагую два файли з vim, переходячи на інший файл (: bnext,: bprev), схоже, випаде історія скасування з відкритого файлу - натиснувши клавішу 'u', звітує "Уже в найстаршій зміні".

Наприклад:

  1. vim testfile1 testfile2
  2. додати деякі матеріали до testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! не можна скасувати!

Чи є якийсь спосіб зберегти цю історію для невидимих ​​буферів?


це повинно бути замість цього суперпользователя або поточного потоку?
Рессу

@Ressu - хороший момент, як нам сказати? Мета питання розміщено: meta.ubuntu.stackexchange.com/questions/47/…
Джеремі Керр

Залежно від результату цього мета-питання, я, ймовірно, видалюю це.
Джеремі Керр

Відповіді:


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 filename" - розділити та відкрити "filename".
": vsp filename" - вертикальний розкол та відкриття "filename".
"Ctrl + w + стрілка" - Змінення вікна перегляду.


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