跳过导航到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跳过左边的缓冲区。