2008-11-17 11 views
6

Cuando uso gdb y Vim, a menudo quiero detenerme en una línea en particular. Normalmente en Vim copio y pego el número de línea que se muestra en el área de la regla a la sesión de gdb. Me ahorraría un montón de problemas si pudiera usar algo como "+<magic-incantation> para copiar el número de línea de la posición actual del cursor en el buffer de xclipboard. es posible?En Vim, ¿hay alguna manera de copiar el número de línea actual en un búfer?

Respuesta

10

ponga esto en su vimrc

map ,n <Esc>:let @*=line(".")<CR> 

a continuación, utilizando ,n copiará el número de línea actual en el portapapeles

-1

¿No está seguro de si esto es lo que está buscando pero ha intentado usar marcadores?

Sitúe el cursor en la línea que desee, luego ing e m y una letra, digamos a.

Ingresando 'a lo llevará a la línea que contiene el marcador.

Ingresando `a lo llevará a la letra real que marcó en la línea.

Hmm, simplemente pensando un poco más, esto debe estar disponible ya que el número de línea está disponible para su uso en diversas funciones, p. para usar en la barra de estado.

+0

Buen intento, pero por desgracia el un buffer no se mantiene la línea después. Las marcas y los tirones deben usar un conjunto diferente de registros ... – richq

+0

Bugger. No estoy seguro de lo que quería esto pero asumí solo navegación. Tal vez agregar un poco más de texto para aclarar las preguntas? –

5

Así que la magia es:

:call setreg('*', line('.')) 

La razón:

  1. El registro * mantener el portapapeles
  2. line('.') contiene el número corriente de línea

Por supuesto puede asignar esa función a un acceso directo:

nmap ,ln :call setreg('*', line('.'))<CR> 
Cuestiones relacionadas