usar salir pegar copiar buscar borrar archivo linux vim

linux - salir - ¿Cómo borrar el número de línea en Vim al copiar?



usar vi (8)

Copio un código de una parte de un archivo a otra parte en vim, me parece que hay números de línea en cada línea y el formato se ha ido, ¿cómo establecer el formato correcto como origen?

Me gusta esto:

40 root /opt/release/current/public; 67 41 passenger_enabled on; 68 42


Asigné el siguiente comando a una clave.
Quita el espacio en blanco alrededor de los números de línea copiados.
Ignora el texto de línea y cualquier línea en blanco detrás.

:1,$s/^/s*[0-9]/+/s///|1,$s/^/s*[0-9]/+/n//r/<cr>


Eche un vistazo a la opción pegar y pegar a veces configurada en F11.

Como alternativa, siempre puede escribir la sección que desea copiar en un archivo temporal ( ma , ir a la línea final y luego usar :''a,.w tempfile ) y luego leerlo en el segundo archivo.

Para una mayor investigación es posible que desee mirar la opción autoindent.


En Windows VIM GUI:: :set nu y luego mantenga presionada la tecla Ctrl - Shift mientras resalta el texto deseado con el mouse. Esto tira de los números de línea en el búfer.


En caso de que alguien quiera una forma más rápida (en Linux de todos modos), he notado en vim que puede mantener presionado ctrl y arrastrar sobre la región que desea copiar y evitará los números de línea y seleccionará la parte que desee.

Pasos :

  1. Ctrl y arrastre sobre el área
  2. lanzamiento ctrl
  3. copiar (ya sea un atajo de teclado o clic derecho)

En el modo Esc, escribe :se nonu

Esta es la forma más fácil de eliminar los números de línea y podrá copiar el texto sin los números de línea.


Si tienes números de línea, estoy bastante seguro de que no estás usando las operaciones de yank / put de Vim ( nunca copiarán los números de lienzo, foldcolumn, icons, etc.) porque en términos del buffer de edición, no existen.

Supongo que estás trabajando en un emulador de terminal y usando el mouse para copiar cosas en el portapapeles, que posiblemente selecciona la habitación "extraña" de la pantalla (incluidos los espacios virtuales al final, los números de línea, los marcadores de pliegue, etc.)

Es posible que tengas suerte

:se mouse+=a

para obtener el comportamiento del mouse como lo esperabas. De lo contrario, haga la selección con V <movement>... y ( y para yank , que corresponde a ''copia'')

Luego, en el destino use p (poner en el cursor), o P (poner antes del cursor)

Avíseme si eso ayudó o si necesita más información


Todas las soluciones ingresadas previamente son muy buenas. Sin embargo, a veces está usando vim en un servidor remoto (por lo que no puede copiar en el portapapeles usando "+y ). A menudo los terminales admiten la operación de pegar y copiar.

Utilizo vim para mostrar la selección visual en un nuevo shell donde puedo copiar texto usando la función de terminal:

:''<,''>w ! bash -c cat

Entonces puedo copiar fácilmente la salida.

Mismo patrón para pegar en vim:

:r ! bash -c cat

Luego pego y envío EOF a gato usando Ctrl + d . Este método también evita volver a pegar el texto que pega (Nota: puede deshabilitar la sangría automática usando :set pi! ).


Una solución permanente para esto es agregar el siguiente código al final de su archivo .vimrc ubicado en su directorio personal.

se mouse+=a

Al agregar esto, podrá seleccionar solo texto y no los números de línea como se muestra en la imagen siguiente:

Si no está obteniendo su archivo .vimrc en su directorio de inicio (me enfrenté a este problema), escriba el comando :scriptnames en el editor vi, se mostrará la ubicación de su archivo .vimrc . Reference