Это обходной путь, который я использовал до Vim 7.3:
" :e usually clears undo history, so we don't really do :e any more.
" Instead we delete the contents of the buffer, then read the file in, which
" is an operation we can undo. We must delete the top (empty) line also.
:map :e<Enter> :%d<Enter>:r<Enter>:0<Enter>dd
Когда вы видите предупреждение, вам нужно будет нажать o
k вместо l
oad, а затем выполнить загрузку самостоятельно: :e<Enter>
Есть два недостатка (хотя я нашел компромисс приемлемым):
- Вы теряете линию, на которой вы были. Ваш курсор остается в верхней части файла.
- Vim по-прежнему считает, что буфер не синхронизирован с файлом, поэтому при следующем сохранении может потребоваться выполнить
:w!
вместо обычного :w
, и вам потребуется нажать y
, чтобы подтвердить перезаписать.
Редактировать: может быть обходной путь для второй проблемы .
Редактировать: Первая проблема может быть решена с помощью немного большего количества сценариев (см. :h line
.)