32

我已经通过 Janus 安装了 (Mac)Vim Syntastic 插件。当我打开:Errors窗口查看语法错误的原因时,它会将包含错误的文件缩小到一行,并将剩余空间用于错误窗口。

有没有办法让它减少错误的空间,更重要的是,我如何关闭错误窗口?:q即使光标在错误窗口中,通常也会关闭错误窗口和原始文件。(这不是 100% 正确的——如果文件尚未保存,它不会关闭文件)。

4

4 回答 4

44

Syntastic使用位置列表(快速修复列表的窗口本地变体),因此 a将关闭它,但保留其他缓冲区。:lclose

根据syntastic 的帮助页面,可以配置初始高度:

:let g:syntastic_loc_list_height=5

但我怀疑你侵入性的Janus分布在这方面有影响。像spf-13Janus这样的Vim“发行版”通过快速安装和开箱即用的设置来吸引你,但你付出的代价是增加了复杂性(你需要了解 Vim 的运行时加载方案和发行版的任意约定)和不灵活(分发可能使某些事情变得更容易,但其他事情变得非常困难)。Vim 的可定制性令人难以置信,使用别人的定制是没有意义的。

于 2013-09-23T14:54:15.133 回答
21

关闭 Syntastic 错误窗口的命令是:

:SyntasticReset
于 2016-10-14T09:24:40.847 回答
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>

不要对这项工作的胶带感到害羞,这是唯一将设备固定在一起的东西。

于 2018-12-26T16:53:20.537 回答
2

你可以用:lclose它来关闭它。

于 2019-12-02T04:35:36.167 回答