0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

errormaker.vim使用時にQuickFixウインドウを自動開閉する設定

Last updated at Posted at 2013-07-03

vimのプラグインであるerrormaker.vimを使うと,保存のタイミングで指定したチェックコマンドを走らせて,その結果をQuickFixで管理することができる.

Screen Shot 2013-07-04 at 2.12.51.png

errormaker.vimについては以下のサイトが導入に際しての参考になる.

QuickFixに関しては,vimの:help Quickfixを見た方がはやい.(きっちり説明する自信なし..)

このままだと面倒なこと

ただこのままだと,エラーの箇所は分かるもののエラー詳細が分からずに,QuickFixウインドウを開く(:copenコマンド)という事態が(注:私のなかではしょっちゅう)生じる.

さらに一度開いたQuickFixウインドウは明示的に閉じなくてはならない(:ccloseコマンド).
画面が大きい場合は開きっぱなしにして放っておいても良いかも知れないが,screen/tmux,もしくはvimの画面分割を活用している場合は,えてして一つの領域が狭くなりがちである.

QuickFixウインドウが表示されて欲しい=『エラーが一件以上ある』場合であり,それ以外の場合は表示されないことが望ましい.

ということで

以下の設定をファイルタイププラグインに追加して,QuickFixウインドウを自動で開閉するようにした.

ファイル保存時にエラーがあれば,自動的にQuickFixウインドウが開く→修正後は自動で閉じるという挙動が実現できるため,快適なエラーチェックが可能に.

~/.vim/after/ftplugin/python.vim
setlocal makeprg=/Users/tatsuro/python/pythonbrew/bin/flake8\ %
setlocal errorformat=%f:%l:%m

""" getqflist()でQuickFixのエラー件数が取得できる.
function! s:open_quickfix_window()
    silent make | redraw!
    if (len(getqflist()) == 0)
        cclose
    else
        copen
    endif
endfunction

if !exists("g:python_flyquickfixmake")
    let g:python_flyquickfixmake = 1
    au BufWritePost *.py call s:open_quickfix_window()
endif
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?