如何仅在Vim中没有打开quickfix窗口时启用映射?
我想在打开quickfix窗口时禁用以下映射如何仅在Vim中没有打开quickfix窗口时启用映射?,vim,Vim,我想在打开quickfix窗口时禁用以下映射 map <F5> :ZoomWin<cr> map:ZoomWin 你是说快速修复吗?如果是,有三种方法: 使用映射: nnoremap <expr> <F5> (&buftype is# "quickfix" ? "" : ":\<C-u>ZoomWin\n") nnoremap(&buftype是#“快速修复”?:“:\ZoomWin\n”) 使用BufEnter事件设置/
map <F5> :ZoomWin<cr>
map:ZoomWin
你是说快速修复吗?如果是,有三种方法:
映射:
nnoremap <expr> <F5> (&buftype is# "quickfix" ? "" : ":\<C-u>ZoomWin\n")
nnoremap(&buftype是#“快速修复”?:“:\ZoomWin\n”)
augroup F5Map
autocmd! BufEnter * :if &buftype is# 'quickfix' | nunmap <F5> | else | nnoremap <F5> :<C-u>ZoomWin<CR> | endif
augroup END
augroupf5map
自动驾驶!BufEnter*:if&buftype是#快速修复| nunmap | else | nnoremap:ZoomWin | endif
螺旋端
augroup F5Map
autocmd! BufEnter * :if &buftype isnot# 'quickfix' && empty(maparg('<F5>')) | nnoremap <buffer> <F5> :<C-u>ZoomWin<CR> | endif
augroup END
augroupf5map
自动驾驶!BufEnter*:if&buftype不是#‘快速修复’&&empty(maparg(“”));nnoremap:ZoomWin | endif
螺旋端
nnoremap <expr> <F5> (&buftype is# "quickfix" || empty(filter(tabpagebuflist(), 'getbufvar(v:val, "&buftype") is# "quickfix"')) ? ":\<C-u>ZoomWin\n" : "")
nnoremap(&buftype是#“快速修复”|空的(过滤器(tabpagebuflist(),'getbufvar(v:val,&buftype')是#“快速修复”)?“:\ZoomWin\n:”)
您似乎对该插件有很多问题。你有没有想过这不是你真正需要的?但是我找到了一个替代的插件?有没有一种方法能像上面的nunMAP那样禁用,但是即使当三个窗格中的一个是QueFixFor和活动窗格不是Quebug时?@ ReDeaRek替换<代码> & BufType是QuyFix' < /Cord>条件>代码>!空(filter(tabpagebuflist(),'getbufvar(v:val,&buftype')是#“quickfix”)在fist变量中。不要将第二个与nunmap
或第三个一起使用。@regedarek I不准确:使用&buftype不是“快速修复”&&!空(…)
(&buftype是#“quickfix”| |空(…)
,在我在更新中发布的变体中)用于“活动窗格不是quickfix”。