切换到同一行上的拆分窗口

Chr*_*ris 9 vim

我在vim中使用垂直拆分打开了两个缓冲区,它们使用:set scrollbind进行链接.

有没有办法在窗口之间切换,以便当我使用ctrl + w命令在它们之间切换时,光标保持在同一(相对)行上?

hol*_*eek 6

映射将满足您的需求

在左侧窗口中执行此操作:

:nmap <right> :let linenum=getpos('.')[1]\|:wincmd l\|:call cursor(linenum,0)<cr> 
Run Code Online (Sandbox Code Playgroud)

并在右侧窗口中执行此操作:

:nmap <left> :let linenum=getpos('.')[1]\|:wincmd h\|:call cursor(linenum,0)<cr>
Run Code Online (Sandbox Code Playgroud)

然后您可以使用左箭头和右箭头在窗口之间切换,光标将转到另一个窗口中的同一行.

编辑:

我没有仔细阅读你的问题(对我感到羞耻!:).

以下是如何准确获得您想要的内容:

在左侧窗口:

:nnoremap <right> :let offset=winline()\|wincmd l\|exe 'normal ' . offset . 'H'<cr>
Run Code Online (Sandbox Code Playgroud)

在右边:

:nnoremap <left> :let offset=winline()\|wincmd h\|exe 'normal ' . offset . 'H'<cr>
Run Code Online (Sandbox Code Playgroud)

玩得开心!