用于在vi中切换行号的命令

Hab*_*wad 37 vi vim line-numbers

我知道

:set number
Run Code Online (Sandbox Code Playgroud)

和

:set nonumber
Run Code Online (Sandbox Code Playgroud)

我想知道vi/vim中是否有任何命令

:set togglenumber
Run Code Online (Sandbox Code Playgroud)

如果行号未显示则显示行号,如果显示行号则显示行号.

Mec*_*urS 63

你可以使用(至少在VIM上):

:设置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 
Run Code Online (Sandbox Code Playgroud)

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


Ken*_*ent 12

在vim中,许多选项都支持这种set模式(例如foo):

"enable the option
set foo

"disable it
set nofoo

"toggle the option
set foo!

"get option's current value
set foo?
Run Code Online (Sandbox Code Playgroud)

为number,映射一个键:set nu!就可以了.


Jen*_*ens 11

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

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


Sim*_*ürg 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>
Run Code Online (Sandbox Code Playgroud)