VimのQuickFix-windowを自動で開く設定
quickfix-window(QuickFixウィンドウ)は自動で開かれないので,自分で:cw
で開かないといけない。
以下の設定を記述すると,該当するQucikFixコマンドを実行して,対象があるときだけ自動的にquickfix-windowを開いてくれる。
autocmd QuickfixCmdPost make,grep,grepadd,vimgrep cwindow
vimでquickfixを自動で開く – Webtech Walker
作業中のファイルとquickfixで確認・修正するウィンドウは別にしたほうが作業しやすいと思う。quickfix-windowを新しいタブで開くには以下のようにする。
autocmd QuickfixCmdPost make,grep,grepadd,vimgrep tab cwindow
Vim quickfix list launch files in new tab – Stack Overflow
quickfix-windowでは,Enterで該当ファイルの該当箇所にジャンプできる。しかし,たくさん見比べるときはタブで開きたいときがある。新しいタブで開きたければ,以下のキーバインドを使えばいい。なお,^[
はC-vを押して,Alt+Enterを押して直接制御文字を入力する。
nnoremap ^[ <C-W><CR><C-W>T
これで,quickfix-windowでAlt+Enterで該当ファイルの該当箇所を新しいタブで開ける。
ターミナルの制約で,C-CRやS-CRにキーを割り当てるのは難しいみたい。
参考:
- Vim quickfix list launch files in new tab – Stack Overflow
- VIM – How to map Shift-Enter – Stack Overflow
- Vim Tips @003 VimでCtrl+EnterやShift+Enterをマッピングする. – たけっぱ横丁
2016-05-17追記
上記のキーバインドは,Windowsなどで使えなかったりする。可搬性が下がるのでやめておこう。
代わりに以下の内容の~/.vim/after/ftplugin/qf.vim
を作成しよう。
if exists("b:did_ftplugin_qf") | finish | endif
let b:did_ftplugin_qf = 1
"" open new tab
nnoremap <buffer> t <C-W><CR><C-W>T
この設定により,quickfix-windowでだけ,tで現在カーソルのファイルを新しいタブページで開ける。<C-W>T
のキーで現在のバッファーを新しいタブページに異動させる。このキーは普段使いでも便利そうなので覚えておこう。