在Vim中同时显示相对和绝对行号
有没有办法在Vim中同时显示相对和绝对行号?并排或其他有趣的演示都可以。合理地说,你不能。行编号为每个缓冲区一个,仅由在Vim中同时显示相对和绝对行号,vim,Vim,有没有办法在Vim中同时显示相对和绝对行号?并排或其他有趣的演示都可以。合理地说,你不能。行编号为每个缓冲区一个,仅由'number'选项控制 我尝试过一个疯狂的想法::垂直diffsplit加上:setlocal RelativeEnumber。这将获取相邻的两个缓冲区副本,它们在滚动位置链接,因为它们处于差异模式。然而,它确实不能正常工作。相关数字没有成功更新(在7.3.154上,bug可能会在以后修复,但我怀疑这不值得),即使更新了,你也会被困在一个巨大的视觉障碍和更难的管理和导航中 你可
'number'
选项控制
我尝试过一个疯狂的想法::垂直diffsplit
加上:setlocal RelativeEnumber
。这将获取相邻的两个缓冲区副本,它们在滚动位置链接,因为它们处于差异模式。然而,它确实不能正常工作。相关数字没有成功更新(在7.3.154上,bug可能会在以后修复,但我怀疑这不值得),即使更新了,你也会被困在一个巨大的视觉障碍和更难的管理和导航中
你可以用一个插件写入一个特殊的缓冲区,你可以把它放在左边,但是实现起来会很难看,而且仍然会使导航变得困难(因为它是另一个缓冲区)。我当然不会花时间写这样的插件,不过我必须承认我想展示两种形式的行号。这是我与相对行号和绝对行号相关的映射 在相对和绝对之间切换 输入窗口将窗口设置为相对数,而保留窗口将其设置为绝对数。 然后,如果您对窗口进行垂直拆分,您将使用相同的缓冲区和相对数和绝对数
" setglobal relativenumber
autocmd WinEnter * :setlocal relativenumber
autocmd WinLeave,FocusLost * :setlocal number
autocmd InsertEnter * :setlocal number
autocmd InsertLeave * :setlocal relativenumber
function! g:ToggleNuMode()
if(&relativenumber == 1)
set number
else
set relativenumber
endif
endfunc
map <C-l> :call g:ToggleNuMode()<CR>
“设置全局相对枚举器
autocmd WinEnter*:设置本地相对枚举器
autocmd WinLeave,FocusLost*:设置本地号码
autocmd插入器*:设置本地号码
autocmd InsertLeave*:设置本地相对枚举器
函数!g:ToggleNuMode()
如果(&relativeEnumber==1)
设定数
其他的
集合相对枚举器
恩迪夫
endfunc
映射:调用g:ToggleNuMode()
可以。使用显示相对数字,使用Vim显示绝对数字:
Vim 7.4(补丁)将在同时设置“RelativeEnumber”和“number”时显示绝对行号,而不是“0”
From:h relativeEnumber
,7.3
设置此选项时,“数字”被重置
From:h relativeEnumber
,7.4
光标行前面的数字也取决于
“数字”,请参见|数字|有关这两个数字的所有组合
选项
结合plnx和Macario与vim 7.4的答案
autocmd WinEnter,FocusGained * :setlocal number relativenumber
autocmd WinLeave,FocusLost * :setlocal number norelativenumber
这将在聚焦窗口中显示相对编号(当前行为绝对编号),在非聚焦窗口中显示绝对编号。多年后,此功能现在是Vim的一部分,称为混合编号 您可以通过输入以下内容来启用此功能:
:set number relativenumber
也没有速度惩罚。据我所知。啊,你已经和我一样拼命地考虑过了。@mt3,你可能有兴趣返回thia问答,看看一个插件解决方案已经作为答案发布了好的,我已经取消选择了这个,并选择了实际的插件。@Fire Dragon DoL我已经安装了那个插件,但需要它将显示在vim本身的开始部分。我应该在
.vimrc
文件中输入什么?启用此插件确实会降低整个vim的速度,例如,当通过j/k更改行时。即使直接跳到行,每一行的刷新率都很低jump@Fire-Dragon DoL修复了!我安装了这个插件。每当我移动时,它都会减慢vim的速度上/下一行(k/j),在打开和处理缓冲区时,它似乎不起作用。这些问题是否有解决方案?对我来说,这不会在新打开的文件上触发(从命令行或ctrl-p),因此我将autocmd-WinEnter,focusgaund
更改为autocmd-BufReadPre,FileReadPre,WinEnter,focusgaund
您使用的是哪个版本的vim
?适用于我在vim
和gvim
中使用的8.1.1467
。(vim测试
或gvim测试
,切换到插入模式,键入几行,切换回正常模式,上下导航。)neovim@head.它在进入和退出插入模式时对我有效,但在打开新文件时无效。必须是带有neovim的增量文件。(我只使用(g)vim)。可能会打开一个错误报告?未受影响。vim有一个切换映射yor
,可以方便地快速查看绝对数,然后返回混合设置。