Возможно ли установить BufLeave autocmd в vim на лету?

Что я хочу сделать:

Внутри файла / буфера в vim, особенно безымянного (например, созданного с помощью:enew), иногда я чувствую, что содержимое, которое я пишу, стоит сохранить (скажем, я внезапно хочу отправить его по электронной почте), но не Я не чувствую особой необходимости сохранять его во временном файле, и я не доверяю себе настолько, чтобы "запомнить", чтобы сохранить его при выходе.

Поэтому я подумал, что если я бегу

autocmd BufLeave * ggvG"+y

в командной строке vim один раз и будьте свободны от страха потерять этот контент.

Но это не работает. Когда я выхожу из vim, системный буфер обмена остается без изменений.

Мои вопросы:

  • это делает что-нибудь, если мы бежим autocmd на лету, в отличие от vimrc?
  • Есть ли способ сказать Vim "Эй, когда вы выходите, запустите эти"?

Благодаря тонну!

1 ответ

Решение

Две проблемы:

1) Вы не покинули буфер, чтобы перейти к другому буферу (BufLeave); ты покинул Vim (VimLeave).

2) autocmd ожидает команду, а не нормальный режим нажатия клавиш.

С этим в мыслях,

autocmd VimLeave * normal gg"+yG
Другие вопросы по тегам