Определение наличия буфера быстрого исправления в VIM - PullRequest
5 голосов
/ 09 ноября 2011

Простой вопрос (надеюсь).Это сводит меня с ума.Я пытаюсь создать простой скрипт в моем vimrc для отображения:

<Leader>e

, чтобы открыть окно быстрого исправления.Я также хочу, чтобы эта комбинация клавиш закрывала окно быстрого исправления, если оно открыто в данный момент.Проблема в том, что команда bufexists пропускает буферы быстрого исправления.Не могли бы вы дать мне несколько советов о том, как определить, открыто ли уже окно быстрого исправления?

1 Ответ

6 голосов
/ 09 ноября 2011

Команда :cwindow может быть тем, что вы ищете.Из справки:

                            *:cw* *:cwindow*
:cw[indow] [height] Open the quickfix window when there are recognized
                    errors.  If the window is already open and there are
                    no recognized errors, close the window.

Однако, если вы хотите закрыть окно быстрого исправления, даже если все еще есть ошибки, проверьте этот Vim Совет , который предоставляет следующий фрагмент:

command -bang -nargs=? QFix call QFixToggle(<bang>0)
function! QFixToggle(forced)
  if exists("g:qfix_win") && a:forced == 0
    cclose
    unlet g:qfix_win
  else
    copen 10
    let g:qfix_win = bufnr("$")
  endif
endfunction
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...