跳转到Vim分屏

3

我最近添加了优秀的fholgado/minibufexpl.vim插件,以获得所有现有缓冲区的即时显示。

但是,我的问题是我严重依赖CTRL+W W/H/J/K/L在分割窗口间切换,但我经常错过插件分割窗口。

是否可能编写一些Vim代码来跳过或禁用导航到特定分割窗口?


不是你想要的答案:但你知道在vim中可以像其他动作一样在它们前面加上数字吗?例如,2 ^-W h可以跳过左侧的缓冲区。 - Andrew
1个回答

1
以下代码是否达到了您的预期?它重新映射了一些窗口焦点命令(<C-W>l/h/j/k/w),以便如果打开了BDE窗口,则跳过该窗口。
" Remapping the following <ctrl-w>... commands:
for wincmd in ['l', 'h', 'j', 'k', 'w']
    exe 'noremap <silent> <c-w>'.wincmd.' :WincmdSkipMBE '.wincmd.'<cr>'
endfor

command! -nargs=1 WincmdSkipMBE call WincmdSkipMBE(<f-args>)

function! WincmdSkipMBE(cmd)
    let l:first = winnr()
    while 1
        let l:last = winnr()
        exe 'wincmd '.a:cmd
        let l:new = winnr()
        if l:last == l:new | exe l:first.'wincmd w' | break
        elseif bufname('%') != '-MiniBufExplorer-' | break
        endif
    endw
endf

我不完全确定你的问题。当你说:

我严重依赖于 CTRL+W W/H/J/K/L 在分屏之间切换

你是不是指的是 CTRL-W w/h/j/k/l(小写)?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接