You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让NeoVim分屏右侧的relativenumber基于左侧光标计数?

同一文件分屏时让右侧窗口相对行号以左侧光标为基准的实现方案

Vim/NeoVim原生确实没有直接让分屏窗口共享光标基准的relativenumber设置——每个窗口的相对行号本来就绑定自身光标位置,这是设计逻辑,毕竟分屏的核心就是允许同时浏览文件不同位置。不过可以通过两种方式实现你要的需求:

临时快速操作:同步光标位置

在左侧窗口定位到你想要的基准行后,执行这条命令:

:windo call cursor(line('.'), col('.'))

它会让所有打开该文件的窗口光标同步到当前左侧窗口的位置,此时右侧窗口的相对行号就会以左侧的基准行计数,你可以直接用:m-33这类命令移动行,操作完再切换回各自需要的光标位置即可。

长期便捷方案:自定义同步脚本

如果需要频繁用这个功能,可以写个简单的VimScript函数绑定快捷键:

function! SyncCursorToLeftWindow()
    " 获取左侧窗口的光标位置(假设左侧是第一个打开的窗口,可根据实际调整)
    let left_win = nvim_list_wins()[0]
    let [_, lnum, col, _] = nvim_win_get_cursor(left_win)
    " 把当前窗口(右侧)的光标移到对应位置
    call cursor(lnum, col)
endfunction

" 绑定快捷键,比如按<Leader>s触发
nnoremap <Leader>s :call SyncCursorToLeftWindow()<CR>

之后在右侧窗口按<Leader>s,光标就会同步到左侧窗口的位置,相对行号自然就以左侧光标为基准了。

内容的提问来源于stack exchange,提问作者Benben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:00:08