Как я могу показать относительные номера строк?


53

Многие команды 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

Ответы:


65

Я только что ответил на похожий вопрос: как я могу добавить номера строк в Vim?

Начиная с версии 7.3, вы можете использовать следующее:

set relativenumber

Я на самом деле использую оба relativenumberи numberв моем vimrc, который будет использовать относительные числа для всех строк, кроме текущей строки.

set number                     " Show current line number
set relativenumber             " Show relative line numbers

Не совсем точно, но первый список изменений, о котором упоминается, - 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Коллин Питерс

7

Вы можете включать и выключать относительную нумерацию, используя:

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

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

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

2
Нормативное число просто полностью отключает нумерацию или же оно переключается на обычную нумерацию?
Ник Дж. Адамс

set numberэто параметр, который контролирует наличие чисел, поэтому он будет переключаться только между rel и non-rel
shawndumas

2
numbers.vimПлагин также добавляет некоторые более продвинутые функции относительного числа, например , имеющую линию курсор занимает печать , не относительное число, и переключение на неродственного нумерации в течение всего файла , когда окно теряет фокус ВИМ.
бронзовый хик

1
@shawndumas, так есть ли приоритет, какие цифры отображаются? Например, если бы я установил номер в моем vimrc и вызвал setalnumber / norelativenumber, может ли он переключаться между относительной и стандартной нумерацией?
Ник Дж. Адамс

1
это наиболее правильно
Shawndumas

4

Если вы хотите использовать горячую клавишу для переключения относительного номера строки, вот фрагмент в моем vimrc:

" Toggle relative line number
nmap <C-L><C-L> :set invrelativenumber<CR>

В этом случае я использую Ctrl-L дважды, чтобы переключить его.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.