Jak mogę wyświetlić względne numery linii?

53

Wiele poleceń Vima może przyjmować liczbę odnoszącą się do liczby linii, na które polecenie będzie działać.

Czy można wyświetlić numery linii względem bieżącej linii? Coś w stylu:

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
Nick J Adams
źródło

Odpowiedzi:

65

Właśnie odpowiedziałem na podobne pytanie tutaj: Jak mogę dodać numery linii do Vima?

Począwszy od wersji 7.3, możesz używać następujących opcji:

set relativenumber

Właściwie używam obu relativenumberi numberw moim vimrc, który użyje liczb względnych dla wszystkich linii oprócz bieżącej linii.

set number                     " Show current line number
set relativenumber             " Show relative line numbers
Collin Peters
źródło
Nie jestem pewien, ale pierwszy dziennik zmian, o którym wspomniano, to 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Collin Peters
7

Możesz włączać i wyłączać numerację względną, używając:

:set rnu    " toggle relative numbering on
:set rnu!   " toggle relative numbering off
Matthew Rankin
źródło
5
function! NumberToggle()
  if(&relativenumber == 1)
    set norelativenumber
  else
    set relativenumber
  endif
endfunc

nnoremap <leader>nt :call NumberToggle()<cr>
shawndumas
źródło
2
Czy numer dodatkowy po prostu całkowicie wyłącza numerację, czy też przełącza się na konwencjonalną numerację?
Nick J Adams
set numberto ustawienie, które kontroluje obecność liczb, więc będzie przełączać się tylko między rel i non-rel
shawndumas
2
numbers.vimWtyczka dodaje również trochę bardziej zaawansowaną funkcjonalność liczbę względną, np posiadającą linię kursor zajmuje drukowania numeru zakaz względny, a nie do przełączania względnej numeracji w całym pliku, gdy okno vim traci ostrość.
bronzehedwick,
1
@shawndumas, więc czy istnieje precedens, które liczby są wyświetlane? Jeśli na przykład ustawiłem numer w moim vimrc i ustawiłem relatywny numer / norelativenumber, czy może on przełączać się między numeracją względną a standardową?
Nick J Adams
1
to jest najbardziej poprawne
shawndumas
4

Jeśli chcesz użyć skrótu do przełączania względnego numeru linii, oto fragment w moim vimrc:

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

W tym przypadku używam ctrl-L dwa razy, aby go przełączać.

Sean Lee
źródło