Сохранить файл после каждого редактирования в VIM - PullRequest
7 голосов
/ 14 марта 2012

Я постоянно делаю это в vim: [сделать что-то в режиме вставки или в обычном режиме], Esc,: ws

Я делаю это сотни раз в день. Вместо этого я бы хотел избавиться от привычки и немедленно сохранять vim в файл после любого изменения в буфере.

Все работает на SSD, поэтому я не ожидаю, что производительность будет проблемой.

Ответы [ 4 ]

14 голосов
/ 15 марта 2012

Добавьте это простое сопоставление к вашему ~/.vimrc:

inoremap <Esc> <Esc>:w<CR>

для автоматической записи текущего буфера на каждый <Esc> в режиме INSERT .

3 голосов
/ 08 августа 2013

CursorHold и CursorHoldI могут помочь.Согласно документации:

|CursorHold|        the user doesn't press a key for a while
|CursorHoldI|       the user doesn't press a key for a while in Insert mode

Эти события запускаются только один раз после бездействия и зависят от переменной updatetime (по умолчанию: 4000 мс).Таким образом, вы можете:

:au CursorHold <buffer> :update

, который будет обновлять текущий буферный файл (т.е. сохранять только при изменении) после 4 секунд бездействия по умолчанию в обычном режиме.

Добавить автокоманду для CursorHoldI, если выхотите получить то же поведение в режиме вставки.

2 голосов
/ 15 марта 2012

Не то, что я знаю, кроме как его кодирование ( проверьте вики VIM для начальной точки ). Файл подкачки VIMs почти делает то, что вы просите, в целях восстановления.

со страницы руководства VIM ;

Файл подкачки обновляется после ввода 200 символов или при наличии ничего не набирается за четыре секунды

Похоже, что это поймает большинство причуд. Есть ли какая-то конкретная проблема, которую вы пытаетесь избежать?

1 голос
/ 15 марта 2012

Вот небольшая функция для автосохранения: http://vim.wikia.com/wiki/Auto-save_current_buffer_periodically

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...