クイックフィックス ウィンドウを開いたときに、次のマッピングを無効にしたいと思います。
map <F5> :ZoomWin<cr>
クイックフィックスのことですか?その場合、次の 3 つの方法があります。
<expr>
マッピングを使用します。
nnoremap <expr> <F5> (&buftype is# "quickfix" ? "" : ":\<C-u>ZoomWin\n")
BufEnter イベントを使用してマッピングを設定/復元します。
augroup F5Map
autocmd! BufEnter * :if &buftype is# 'quickfix' | nunmap <F5> | else | nnoremap <F5> :<C-u>ZoomWin<CR> | endif
augroup END
マッピングが必要なバッファーに対してのみローカルに作成します。
augroup F5Map
autocmd! BufEnter * :if &buftype isnot# 'quickfix' && empty(maparg('<F5>')) | nnoremap <buffer> <F5> :<C-u>ZoomWin<CR> | endif
augroup END
更新:開いているウィンドウのいずれかにクイックフィックスバッファが含まれている場合にマッピングを無効にするには、次を使用します。
nnoremap <expr> <F5> (&buftype is# "quickfix" || empty(filter(tabpagebuflist(), 'getbufvar(v:val, "&buftype") is# "quickfix"')) ? ":\<C-u>ZoomWin\n" : "")