Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳过导航到Vim拆分_Vim - Fatal编程技术网

跳过导航到Vim拆分

跳过导航到Vim拆分,vim,Vim,我最近添加了一个优秀的插件,可以随时显示所有现有的缓冲区 不过,我现在的问题是,我严重依赖于CTRL+W/H/J/K/L在拆分之间切换,我一直没有意识到我在插件的拆分中 是否可以编写一些Vim代码来跳过或禁用对某个拆分的导航?以下代码是否符合您的预期?它会重新映射一些窗口焦点命令(l/h/j/k/w),以便在BDE窗口打开时跳过该窗口 " Remapping the following <ctrl-w>... commands: for wincmd in ['l', 'h', 'j

我最近添加了一个优秀的插件,可以随时显示所有现有的缓冲区

不过,我现在的问题是,我严重依赖于
CTRL+W/H/J/K/L
在拆分之间切换,我一直没有意识到我在插件的拆分中


是否可以编写一些Vim代码来跳过或禁用对某个拆分的导航?

以下代码是否符合您的预期?它会重新映射一些窗口焦点命令(
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
“重新映射以下…命令:
适用于['l'、'h'、'j'、'k'、'w'中的wincmd
exe'noremap'.wincmd':WincmdSkipMBE'.wincmd'
外循环
命令!-nargs=1 WincmdSkipMBE调用WincmdSkipMBE()
功能!WincmdSkipMBE(cmd)
设l:first=winnr()
而1
设l:last=winnr()
exe'wincmd'.a:cmd
设l:new=winnr()
如果l:last==l:new | exe l:first'wincmd w'| break
elseif bufname(“%”)!='-MiniBufExplorer-'| break
恩迪夫
endw
endf
我不完全确定你在问什么。当你说:

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


,你的意思是不是说
CTRL-W W/h/j/k/l
(小写)?

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