¿Cómo puedo mostrar números de línea relativos?

53

Muchos comandos vim pueden tomar un número que se refiere al número de líneas sobre las que actuará el comando.

¿Es posible mostrar los números de línea en relación con la línea actual? Algo como lo siguiente:

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
fuente

Respuestas:

65

Acabo de responder una pregunta similar aquí: ¿Cómo puedo agregar números de línea a Vim?

A partir de la versión 7.3, puede usar lo siguiente:

set relativenumber

De hecho, uso ambos relativenumbery numberen mi vimrc que usará números relativos para todas las líneas excepto la línea actual.

set number                     " Show current line number
set relativenumber             " Show relative line numbers
Collin Peters
fuente
No estoy seguro exactamente, pero el primer registro de cambios mencionado es 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Collin Peters
7

Puede activar y desactivar la numeración relativa utilizando:

:set rnu    " toggle relative numbering on
:set rnu!   " toggle relative numbering off
Matthew Rankin
fuente
5
function! NumberToggle()
  if(&relativenumber == 1)
    set norelativenumber
  else
    set relativenumber
  endif
endfunc

nnoremap <leader>nt :call NumberToggle()<cr>
shawndumas
fuente
2
¿El número no relativo simplemente apaga la numeración por completo o cambia a la numeración convencional?
Nick J Adams
set numberes la configuración que controla la presencia de números, por lo que solo cambiará entre rel y no rel
shawndumas
2
El numbers.vimcomplemento también agrega algunas funciones de número relativo más avanzadas, por ejemplo, hacer que la línea que ocupa el cursor imprima el número no relativo y cambiar a numeración no relativa en todo el archivo cuando la ventana vim pierde el foco.
bronzehedwick
1
@shawndumas, ¿hay una precedencia de qué números se muestran? Si, por ejemplo, estableciera un número en mi vimrc y estableciera un número relativo / número relativo, ¿podría alternar entre numeración relativa y estándar?
Nick J Adams
1
eso es lo más correcto
shawndumas 03 de
4

Si desea usar una tecla de acceso rápido para alternar el número de línea relativa, aquí hay un fragmento en mi vimrc:

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

En este caso, uso ctrl-L dos veces para alternarlo.

Sean Lee
fuente