Як я можу показати відносні номери рядків?


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
Collin Peters

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Плагін також додає деякі більш просунуті функції відносного числа, наприклад , має лінію курсор займає друк , не відносно число, і перемикання на нерідного нумерації в протягом всього файлу , коли вікно ВІМ втрачає фокус.
bronzehedwick

1
@shawndumas, то чи є пріоритет, які числа відображаються? Якщо, наприклад, я міг встановити номер у своєму vimrc та встановити relanumber / 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.