和
setl nu!
我可以切换数字(开/关),与相对数字类似
setl rnu!
我如何切换 {off,number,relativenumber} ?
答案1
if &nu == 1
set rnu
elseif &rnu == 1
set nornu
else
set nu
endif
答案2
因为我喜欢逻辑谜题,并且非常喜欢 vim 命令在一行中简洁地重复(@:这是我个人的最爱):
:exec &nu==&rnu? "se nu!" : "se rnu!"
这将保持相同的循环。我认为这主要是因为let &nu=1
将隐式设置 norelativenumber - 原因可能在文档中找到 :)
答案3
对于那些想要更易读的解决方案的人来说,以下是我在 .vimrc 中的内容
" Relative or absolute number lines
function! NumberToggle()
if(&nu == 1)
set nu!
set rnu
else
set nornu
set nu
endif
endfunction
nnoremap <C-n> :call NumberToggle()<CR>
很酷的是,您可以按ctrl+n在相对数字模式和绝对数字模式之间切换!
答案4
另一种选择是艾瑞克·安德森多于:
"Relative with start point or with line number or absolute number lines
function! NumberToggle()
if(&number == 1)
set number!
set relativenumber!
elseif(&relativenumber==1)
set relativenumber
set number
else
set norelativenumber
set number
endif
endfunction
nnoremap <C-n> :call NumberToggle()<CR>