2009-04-30 18 views
20

Así que he descubierto cómo agregar números de línea a vim (: establecer no o: establecer el número) pero ¿cómo puedo hacerlo de modo que cuando uso mi mouse en un emulador de terminal para seleccionar un bloque de líneas, lo haga no también selecciona los números?¿Cómo puedo agregar números de línea no seleccionables por el mouse a vim?

Por ejemplo, decir que tengo tres líneas que se parecen a lo que en vim:

1 First line 
2 Second 
3 Third 

Si quiero seleccionar las tres líneas con el ratón lo que yo quiero es que para solo seleccionar el texto real. Pero lo que termina sucediendo es que selecciona los números de línea, así como todo el espacio a la izquierda y derecha de los números de línea.

¿Hay alguna manera de cambiar este comportamiento? Por cierto, estoy usando el editor de terminal gnome en gnome si eso hace la diferencia.

Respuesta

16

yo sepa, eso no es posible.

La única cosa que puedo añadir en este momento es que estaría mejor con

:set invnumber 

Será invertir la situación actual, por lo que puede asignar a una tecla, y activarlo. De esa forma no tienes que recordar dos comandos.

+0

¡Mejor que el mío! Aprende algo todos los días con VIM :-) –

+3

los comentarios a continuación sobre 'set mouse' parecen mejores soluciones y de hecho logran la respuesta. –

+0

or ': set invnu' si no te gusta escribir :) –

4

Estoy bastante seguro de que esto no es posible en terminal-vim. No existe un estándar aceptado (por ejemplo, un escape de TTY) para indicar bloques de caracteres que no son resaltables con el mouse, hasta donde yo sé.

Yo usaría gvim si desea poder hacer esto a toda costa. Su comportamiento es como describes.

8

Acepto la primera respuesta. Si usa gvim, puede experimentar usando set mouse=n y set mouse=a, lo que debería cambiar el comportamiento de selección del número de línea.

+1

véase 'ayuda mouse' ' set del ratón = a' parecía que me diera el comportamiento que se puede esperar. No soy un experto en vim, pero parece que 'set mouse = c' es lo que estaba sacando de la caja. Puse 'set mouse = a' en' ~/.vimrc' y hasta ahora, muy bien. –

+0

¡Excelente! Funciona incluso mejor de lo esperado. – pid

1

Mi recomendación es acostumbrarme a la pequeña casilla en la esquina derecha de la pantalla que tiene el número de la línea actual y la información de posición del carácter. Antes de usar vim, nunca podría imaginar vivir sin números de línea, pero desde entonces me he movido más allá de esto. Si los números de línea no aparecen en la pantalla, se puede ver el código sin distracciones, ¿realmente necesita saber que el número de línea que está arriba de su línea activa actual es uno menos que el número de su línea actual y la siguiente línea es una más?

+0

No entiendo los votos hacia abajo, pero está bien. –

5

Cuando quiero seleccionar texto en un terminal, elimino los números de línea.

:set nonu 

Cuando terminé

:set nu 
3

Probablemente no esté en un Macintosh, y no puedo decir si quiere decir que quiere usar la copia del sistema en lugar del tirón de vim.

Pero si son ambas cosas, puede usar la opción de arrastrar para seleccionar texto. Esto crea un cuadro 2d sobre el texto, seleccionando las cosas que están debajo de él. Debería ser funcionalmente lo mismo que 'tomar columnas x1 a x2 de las filas y1 a y2'.

+0

¡Sí! ¡Esto resuelve exactamente todos mis problemas! Para usuarios de Windows, use alt y arrastre para seleccionar el texto – rasen58

31

utilizar lo siguiente:

:set mouse=a 

para encender pasar el ratón estilo xterm en todos los modos. Esto te permitirá hacer lo que quieras.Tenga en cuenta que si el vim es remoto a través de ssh, necesitará el reenvío X11 activado para que la selección lo haga en su portapapeles local.

1

Una copia sin ratón:

Entre en el modo visual: coloque el cursor, pulse v (Para la línea completa V) moverse hacia arriba o hacia abajo hasta la posición deseada

Prensa control + c para copiar en el portapapeles (si + portapapeles existe en : ve resultado del comando) pr ess ESC y pégalo donde quieras con control + v.

O pulse y dar un tirón en el registro y pulse p para poner el texto después del cursor

Cuestiones relacionadas