在vi中切换行号的命令

42

我知道

:set number

:set nonumber

我想知道Vi/Vim中是否有任何命令。

:set togglenumber
若行号未显示,则显示行号;若行号已显示,则隐藏行号。

4
请返回已翻译的文本:set number!invnumber。另请参阅我之前制作的此表格 - Benoit
4个回答

77

您可以在VIM中使用以下命令:

:set invnumber

更多信息:

:set number      Turn line numbers on
:set nonumber    Turn line numbers off
:set invnumber   Toggle line numbers
:set number!     Toggle line numbers
:set number&     Set option to default value
:set number?     Show value of option 

来源:http://vim.wikia.com/wiki/Managing_set_options#Boolean_options


修饰符如“inv…”或“…!”等可与许多/所有选项一起使用。键入“:set inv<tab>”以查看可能的值。 - MacMartin

13
在vim中,许多选项支持这种set模式(例如foo):
"enable the option
set foo

"disable it
set nofoo

"toggle the option
set foo!

"get option's current value
set foo?

对于number,将一个键映射到:set nu!应该没问题。


13

使用!后缀可以切换任何(布尔)选项,例如::set number!可以切换显示行号。

此命令的内置帮助有点难以找到; 尽管人们可能认为:help toggle会把你带到那里,但并非完全如此。 使用:help set-!就是解决方法。


8

我使用相对行号,对于当前行上下的所有行使用相对行号,而对于当前行使用绝对行号。 但这只在Vim 7.4及以上版本中有效。

有时这被称为“混合”行号(例如在文章https://jeffkreeftmeijer.com/vim-number/中提到)。

要从“没有任何行号”切换到“混合”行号,您可以使用以下配置:

set number relativenumber " Turn line numbering on at startup
" Toggle line numbers from none at all
" to relative numbering with current line number
noremap <F3> :set invnumber invrelativenumber<CR>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接