加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

有没有办法让窗口导航环绕在VIM中

发布时间:2020-12-16 01:16:08 所属栏目:安全 来源:网络整理
导读:我想这样,从最右边的窗口键入Ctrl-Wk会将最左边的窗口聚焦在VIM中.显然,在各个方向上工作都很方便. 我的主要动机是与NERDTree一起使用.我通常有以下设置: |----------|----------|-----------|| | | || NERDTree | File1 | File2 || | | || |----------|---
我想这样,从最右边的窗口键入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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读