Подтвердить что ты не робот

.vimrc действие onclose

Можно ли использовать что-то вроде "vim-close/exit" -Event для выполнения некоторых последних команд до выхода vim?

Я использую эти строки в своей конфигурации, чтобы vim установил мой титульный заголовок:

если $TERM == 'xterm-color'

 exe "set title titlestring=vim:%t"
 exe "set title t_ts=\<ESC>k t_fs=\<ESC>\\"

ENDIF

но когда я закрываю vim, заголовок имеет значение: "Спасибо, что полет Vim" (независимо от того, что происходит...)

Моя цель состоит в том, чтобы reset заголовок старого - если это возможно - и если нет - установлен в нечто вроде "bash" с этим "exe" -Command

Итак, есть ли что-то вроде "close-event" в vim?

Спасибо:)

4b9b3361

Ответ 1

Да, есть "близкое событие" - фактически два из них.
Чтобы процитировать vim : help {event}:

            Startup and exit
|VimEnter|              after doing all the startup stuff
|GUIEnter|              after starting the GUI successfully
|TermResponse|    after the terminal response to |t_RV| is received

|VimLeavePre|        before exiting Vim, before writing the viminfo file
|VimLeave|              before exiting Vim, after writing the viminfo file

Вы после VimLeave -Event.
Рабочий пример выглядит следующим образом:

function! ResetTitle()
    " disable vim ability to set the title
    exec "set title t_ts='' t_fs=''"

    " and restore it to 'bash'
    exec ":!echo -e '\033kbash\033\\'\<CR>"
endfunction

au VimLeave * silent call ResetTitle()

Кроме того, вы можете использовать v: dying, чтобы обнаруживать аномальные случаи выхода.