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

Сделайте Syntastic закрыть только окно ошибки

У меня установлен (Mac) плагин Vim Syntastic через Janus. Когда я открываю окно :Errors чтобы просмотреть причину синтаксических ошибок, он сжимает файл с ошибками до одной строки и использует оставшуюся часть недвижимости для окна ошибок.

Есть ли способ сделать его менее доступным для ошибок и, что важнее, как закрыть только окно "Ошибки"? Обычный :q закрывает окно ошибок и исходный файл, даже если курсор находится в окне ошибок. (Это не на 100% правильно - он с благодарностью не закрывает файл, если файл еще не был сохранен).

4b9b3361

Ответ 1

Syntastic использует список местоположений (локальный вариант окна списка быстрого удаления), поэтому :lclose закроет его, но сохранит остальные буферы.

По синтаксические страницы справки, можно настроить начальную высоту:

:let g:syntastic_loc_list_height=5

Но я подозреваю, что у вашего навязчивого распределения Януса есть рука. Vim "дистрибутивы", такие как spf-13 и Janus, заманивают вас с быстрой установкой и настройками из коробки, но вы платите цену с повышенной сложностью (вам нужно понять как схему загрузки Vim runtime, так и произвольные соглашения о распределении) и негибкость (распространение может сделать некоторые вещи проще, но другие вещи очень трудны). Vim невероятно настраиваемый, использование какой-либо другой настройки не имеет смысла.

Ответ 2

Команда для закрытия окна "Синтаксическая ошибка":

:SyntasticReset

Ответ 3

Syntastic сбивается с толку, когда вы манипулируете несколькими буферами на одном экране, поэтому вот сценарий, который будет собирать информацию о ситуации, а затем делать правильные вещи:

function JustCloseSyntasticWindow()
    "Check which buffer we are in, and if not, return to the main one:
    if &ft == "qf"
        normal ZZ
    endif
    "Since different buffers have different command spaces, check if we've
    "escaped the other buffer and then tell syntastic to stop.
    if &ft != "qf"
       SyntasticReset
       " --- or ----
       SyntasticToggleMode
    endif
endfunction

au FileType buffer1_ft nnoremap :yourcmd<CR>:call JustCloseSyntasticWindow()<cr>

au FileType main_win_ft nnoremap :yourcmd<CR>:call JustCloseSyntasticWindow()<cr>

Не стесняйтесь клейкой ленты для этой работы, это единственное, что удерживает устройство вместе.