Как заставить главное окно gvim не закрываться, когда я набираю `: q` или`: qa`? - PullRequest
5 голосов
/ 02 марта 2012

Вместо этого я хочу, чтобы он закрыл файлы и открыл буфер по умолчанию No Name.Иногда я случайно закрываю последний файл, и мне приходится перезапускать gvim и cd в соответствующий каталог.

Ответы [ 3 ]

5 голосов
/ 02 марта 2012

положите в свой $ MYVIMRC

function! NumberOfWindows()
  let i = 1
  while winbufnr(i) != -1
  let i = i+1
  endwhile
  return i - 1
endfunction


function! DonotQuitLastWindow()
  if NumberOfWindows() != 1
    let v:errmsg = ""
    silent! quit
    if v:errmsg != ""
        "echohl ErrorMsg | echomsg v:errmsg | echohl NONE
        "echoerr v:errmsg
        echohl ErrorMsg | echo v:errmsg | echohl NONE
    endif
  else
     echohl Error | echo "Can't quit the last window..." | echohl None
  endif
endfunction

if has("gui_running")
    cnoreabbrev <expr> q getcmdtype() == ":" && getcmdline() == 'q' ? 'call DonotQuitLastWindow()' : 'q'
    cnoreabbrev <expr> qa getcmdtype() == ":" && getcmdline() == 'qa' ? 'call DonotQuitLastWindow()' : 'qa'
endif
4 голосов
/ 02 марта 2012

Почему бы вам не использовать

:bd

для закрытия буфера (после сохранения последних изменений)?

3 голосов
/ 02 марта 2012

Если вместо этого вы используете команду :close, эта команда не закроет последнее окно.

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