2

vimで、私が使用するとき

:make

make の出力が「外部」ウィンドウに表示されます。これは気に入らず、このマップを使用します

 nnoremap <leader>m :w <bar> make<CR><CR><CR>:copen<CR>

しかし、場合によってはmakeの出力は

 make: Nothing to be done for `all'.

コペンにオートクローズがある場合、どうすればコペンにオートクローズを追加できますmake: Nothing to be done for all.か?

4

2 に答える 2

2

クイックフィックスリストの内容は、で確認できますgetqflist()。次に、最初の行が表示したくないテキストと一致しない場合にのみ、条件付きでクイック修正ウィンドウを開きます。

nnoremap <leader>m :w <bar> make<CR><CR><CR>
\:if get(get(getqflist(), 0, {}), 'text', '') !~# 'Nothing to be done' <Bar> 
\  copen <Bar>
\endif<CR>

リストが空の場合、経由でアクセスするとget()エラーが回避されます。

必要に応じて、いつでもリストを開いて:cclose、条件付きで使用することもできます。

于 2012-10-12T19:18:05.590 に答える