当我在 VIM 中打开了几个窗口时,每当我按下 Ctrl-W_W 时,我总是希望跳过其中一个(包含我使用 Aric Blumer 的 Project 插件的项目的那个)。
换句话说,我想循环浏览我的文档窗口,就好像项目窗口不是其中之一一样。当我确实想进入项目窗口时,我将使用我为此目的特别创建的映射。
有没有办法标记一个窗口,以便它被 Ctrl-W_W 跳过或者我需要一个脚本?我喜欢 Vim,但仍处于学习曲线的陡峭部分。
您必须编写一个循环到下一个窗口的函数(它更容易维护),如果它与您不想进入的窗口的名称匹配,则跳过它。
就像是:
function! s:NextWindowBut(skip,dir)
let w0 = winnr()
let nok = 1
while nok
" exe "normal! \<c-W>w"
" or better
exe 'wincmd '.a:dir
let w = winnr()
let n = bufname('%')
let nok = (n=~a:skip) && (w != w0)
" echo "skip(".n."):".(n=~a:skip)." w!=w0:".(w != w0)." --> ".nok
endwhile
if w == w0
echomsg "No other acceptable window"
endif
endfunction
nnoremap <silent> <C-W>w :call <sid>NextWindowBut('thepattern','w')<cr>
nnoremap <silent> <C-W>W :call <sid>NextWindowBut('thepattern','W')<cr>