Окно линтера Quickfix Location List остается открытым

Мне нравятся линтеры и окно быстрого исправления, но иногда я не хочу ничего исправлять и просто хочу выйти из файла. Текущая проблема заключается в том, что когда я закрываю файл, окно быстрого исправления остается открытым. Я знаю, что могу использовать :qa для выхода из обоих одновременно, но я часто забываю об этом.

Я потратил несколько часов, пытаясь понять, как закрыть буфер быстрого исправления, если это было единственное оставшееся открытое окно/буфер, но безуспешно.

Кто-нибудь еще знает, как справиться с этим лучше?


person user1034781    schedule 20.04.2018    source источник


Ответы (2)


Эта функция является частью моего подключаемого модуля vim-qf, но на самом деле вам не нужен полноценный полноценный плагин для такой обыденной задачи. На самом деле, в Интернете уже много лет гуляет множество фрагментов. Вот один:

augroup MyGroup
    autocmd!
    if exists('##QuitPre')
        autocmd QuitPre * if &filetype != 'qf' | silent! lclose | endif
    endif
augroup END

По сути, он закрывает текущее окно быстрого исправления/местоположения, если оно является последним оставшимся окном на текущей вкладке.

Ссылка:

:help :augroup
:help :autocmd
:help exists()
:help QuitPre
person romainl    schedule 20.04.2018

person    schedule
comment
Это очень похоже на то, что я пытался сделать. Моя проблема с этой строкой заключается в том, что когда я закрываю vim (: q) и буфер быстрого исправления все еще открыт, весь сеанс vim зависает. Я не могу нажать Cntrl-C или что-то в этом роде. Я даже не могу убить pid, я должен сделать kill -9 - person user1034781; 22.04.2018
comment
Это странно. Работает у меня уже несколько лет. - person phd; 22.04.2018