我想这样,从最右边的窗口键入Ctrl-Wk会将最左边的窗口聚焦在VIM中.显然,在各个方向上工作都很方便.
我的主要动机是与NERDTree一起使用.我通常有以下设置:
|----------|----------|-----------| | | | | | NERDTree | File1 | File2 | | | | | | |----------|-----------| | | | | | | File3 | File4 | | | | | |----------|----------|-----------|
如果我想在与File4相同的窗口中打开一个新文件,我现在必须输入2Ctrl-Wj,用Ctrl-Wk实现相同的结果会很不错.
谢谢.
您必须使用包含此额外逻辑的自己的映射来覆盖$HOME / .vimrc中的默认命令.当正常移动不再改变窗口时(即我们已经在边界处),跳到另一边.
" " Wrap window-move-cursor " function! s:GotoNextWindow( direction,count ) let l:prevWinNr = winnr() execute a:count . 'wincmd' a:direction return winnr() != l:prevWinNr endfunction function! s:JumpWithWrap( direction,opposite ) if ! s:GotoNextWindow(a:direction,v:count1) call s:GotoNextWindow(a:opposite,999) endif endfunction nnoremap <silent> <C-w>h :<C-u>call <SID>JumpWithWrap('h','l')<CR> nnoremap <silent> <C-w>j :<C-u>call <SID>JumpWithWrap('j','k')<CR> nnoremap <silent> <C-w>k :<C-u>call <SID>JumpWithWrap('k','j')<CR> nnoremap <silent> <C-w>l :<C-u>call <SID>JumpWithWrap('l','h')<CR> nnoremap <silent> <C-w><Left> :<C-u>call <SID>JumpWithWrap('h','l')<CR> nnoremap <silent> <C-w><Down> :<C-u>call <SID>JumpWithWrap('j','k')<CR> nnoremap <silent> <C-w><Up> :<C-u>call <SID>JumpWithWrap('k','j')<CR> nnoremap <silent> <C-w><Right> :<C-u>call <SID>JumpWithWrap('l','h')<CR>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。