web-dev-qa-db-ja.com

Syntasticの[エラーの場所]パネルを切り替え

VimでSyntasticエラーの場所リストパネルを切り替えるキーボードショートカットを設定するにはどうすればよいですか。

:Errors-ロケーションパネルを表示します

:lclose-ロケーションパネルを非表示にします

ロケーションリストパネルの可視性を確認する方法がある場合、私はVimScriptに非常に慣れていません。これはかなり簡単です。

29
Akshay Aurora

クイックフィックスとロケーションリストを区別する方法はわかりませんが、ロケーションリストが表示されているかどうかを確認する代わりに、リストを閉じて、表示されているウィンドウの数が変更されているかどうかを確認することをお勧めします。

function! ToggleErrors()
    let old_last_winnr = winnr('$')
    lclose
    if old_last_winnr == winnr('$')
        " Nothing was closed, open syntastic error location panel
        Errors
    endif
endfunction

* lcloseを試行するソリューションで問題がない場合、アクティブなバッファがある場合は、buftype quickfixで表示されるバッファを確認します。

function! ToggleErrors()
    if empty(filter(tabpagebuflist(), 'getbufvar(v:val, "&buftype") is# "quickfix"'))
         " No location/quickfix list shown, open syntastic error location panel
         Errors
    else
        lclose
    endif
endfunction

lcloseはquickfixリストを閉じないことに注意してください。

Ctrl-eでエラーパネルを切り替えるには、次のマッピングを使用できます。

nnoremap <silent> <C-e> :<C-u>call ToggleErrors()<CR>
25
ZyX

Syntastic help によると、Syntasticエラーウィンドウを閉じるコマンドは次のとおりです。

:SyntasticReset
6
PokerFace