Vim 使Syntastic仅关闭错误窗口

Vim 使Syntastic仅关闭错误窗口,vim,syntastic,Vim,Syntastic,我已经通过Janus安装了(Mac)Vim Syntastic插件。当我打开:Errors窗口查看语法错误的原因时,它会将包含错误的文件收缩到一行,并将剩余的不动产用于Errors窗口 有没有一种方法可以减少出错的空间,更重要的是,如何关闭“错误”窗口?通常的:q关闭错误窗口和原始文件,即使光标位于错误窗口中。(这不是100%正确——如果文件尚未保存,它将不会关闭该文件。)Syntastic使用位置列表(快速修复列表的窗口本地变体),因此:lclose将关闭它,但保留其他缓冲区 根据,初始高度可

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

有没有一种方法可以减少出错的空间,更重要的是,如何关闭“错误”窗口?通常的
:q
关闭错误窗口和原始文件,即使光标位于错误窗口中。(这不是100%正确——如果文件尚未保存,它将不会关闭该文件。)

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

根据,初始高度可配置为:

:let g:syntastic_loc_list_height=5

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

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

:SyntasticReset

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>
函数JustCloseSyntasticWindow()
“检查我们所处的缓冲区,如果没有,则返回主缓冲区:
如果&ft==“qf”
正常ZZ
恩迪夫
“由于不同的缓冲区具有不同的命令空间,请检查我们是否
“跳过另一个缓冲区,然后告诉syntastic停止。
if&ft!=“qf”
SyntasticReset
“---或者----
SyntasticToggleMode
恩迪夫
端功能
au FileType buffer1\u ft nnoremap:yourcmd:call JustCloseSyntasticWindow()
au FileType main\u win\u ft nnoremap:yourcmd:call JustCloseSyntasticWindow()

对于这项工作,不要羞于使用管道胶带,它是唯一将设备连接在一起的东西。

您可以使用
:lclose
关闭它。

事实上,“let”命令也起到了作用……我只是在文档中忽略了这一点(我检查它们时关注的是另一个问题).非常感谢!我当然遇到了抛弃Janus的建议,但这是我仍在使用vim的唯一原因(十几年来,我已经尝试了十几次“新鲜”方法,但最终还是讨厌vim)。不幸的是,这意味着我在这里问了一大堆愚蠢的问题,但人们对此很友好,即使我的问题有点烦人。此命令将失败,具体取决于您所在的缓冲区(例如,如果您的光标位于位置窗口本身,则为“无操作”)