Сделайте Syntastic закрыть только окно ошибки
У меня установлен (Mac) плагин Vim Syntastic через Janus. Когда я открываю окно :Errors
чтобы просмотреть причину синтаксических ошибок, он сжимает файл с ошибками до одной строки и использует оставшуюся часть недвижимости для окна ошибок.
Есть ли способ сделать его менее доступным для ошибок и, что важнее, как закрыть только окно "Ошибки"? Обычный :q
закрывает окно ошибок и исходный файл, даже если курсор находится в окне ошибок. (Это не на 100% правильно - он с благодарностью не закрывает файл, если файл еще не был сохранен).
Ответы
Ответ 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>
Не стесняйтесь клейкой ленты для этой работы, это единственное, что удерживает устройство вместе.