40

我知道

:set number

:set nonumber

我想知道vi/vim中有没有命令

:set togglenumber

如果行号未显示,则显示行号;如果行号显示,则隐藏行号。

4

4 回答 4

73

您可以使用(至少在 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

于 2013-02-20T08:54:34.923 回答
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!就可以了。

于 2013-02-20T09:33:35.803 回答
13

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

该命令的板载帮助有点隐藏;虽然有人会认为:help toggle会让你到达那里,但事实并非如此。使用:help set-!是一个神奇的词。

于 2013-02-20T09:37:17.310 回答
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>
于 2018-01-05T09:36:06.330 回答