许多vim命令可以使用一个数字来表示该命令将要执行的行数。

是否可以显示相对于当前行的行号?如下所示:

3: some text here
2: more text
1: This is the line above where the cursor is
0: The cursor is on this line
1: This is the line after the cursor
2: More text here


#1 楼

我在这里回答了一个类似的问题:如何向Vim添加行号?

从7.3版开始,您可以使用以下代码:

set relativenumber


我实际上在vimrc中同时使用了relativenumbernumber,这将对除当前行以外的所有行都使用相对编号。

评论


不能完全确定,但是它提到的第一个变更日志是7.3。 ftp.vim.org/pub/vim/patches/7.3/README

–科林·彼得斯
2015年2月3日在21:10



@aturegano,您的编辑内容非常丰富,我认为作为一个新答案要比作为此答案的一部分更好。其他人可能会不同意(您的修改仍在审核中),但请考虑一下!

– D. Ben Knoble♦
20-2-21在15:42

#2 楼

您可以使用以下命令打开和关闭相对编号:

:set rnu    " toggle relative numbering on
:set rnu!   " toggle relative numbering off


#3 楼

如果要使用热键来切换相对行号,请在我的vimrc中使用以下代码片段:它。

#4 楼

function! NumberToggle()
  if(&relativenumber == 1)
    set norelativenumber
  else
    set relativenumber
  endif
endfunc

nnoremap <leader>nt :call NumberToggle()<cr>


评论


norelativenumber只是完全关闭编号还是切换为常规编号?

–尼克J亚当斯
2015年2月3日在16:59

set number是控制数字存在的设置,因此它将仅在rel和non-rel之间切换

–shawndumas
2015年2月3日在17:05



Numbers.vim插件还添加了一些更高级的相对数字功能,例如让光标占据一行来打印非相对编号,并在vim窗口失去焦点时在整个文件中切换到非相对编号。

–bronzehedwick
15年2月3日在17:22

@shawndumas,那么显示的数字优先吗?例如,如果我在vimrc中设置了编号,并调用了relativenumber / norelativenumber设置,是否可以在相对编号和标准编号之间切换?

–尼克J亚当斯
15年2月3日在17:29

那是最正确的

–shawndumas
2015年2月3日在20:43