¿Por qué es pegar un largo de una línea muy lento en Vim modo de inserción?

StackOverflow https://stackoverflow.com/questions/501332

  •  20-08-2019
  •  | 
  •  

Pregunta

Mi Macbook fue atrapado ayer, cuando traté de pegar 1200 líneas de 80 caracteres para Vim.Era mucho más rápido para descargar el archivo, y no para pegar el texto.

He pensado que este problema podría ser la razón, ¿por qué los operadores de internet permiten a los más lenta la carga de la descarga.

¿Fue útil?

Solución

Si usted pegarlo en una ventana de terminal, Vim piensa que usted está escribiendo con la mano, y va a tratar y de actualización de la pantalla a medida que avanza.Puedes acceder a tu portapapeles (en OS X) utilizando el pbpaste y pbcopy los comandos, por lo que sólo puede hacer esto en Vim:

:read !pbpaste

o en una shell:

bash$ pbpaste | vim -

Si estaba utilizando la GUI de Vim, se puede usar el "* registrarse para pegar (esto es lo que el menú de contexto hace):

"*P   <- in normal mode

Pegar en la ventana de terminal es generalmente una mala idea, tratar y utilizar pbpaste donde se puede.

Otros consejos

:read !pbpaste

Si está utilizando Linux use:

xsel --clipboard --output

o:

xclip -selection clipboard -o

en lugar de pbpaste.

Que es "normal".Es lento porque volver a dibujar el texto miles de veces es lento.

Como pegar el largo de la línea, es constante actualización de la pantalla (porque de cómo vim se ocupa de texto, o cómo es que el terminal se entrega de texto vim, supongo).

He intentado pegar el texto en vim (utilizando iTerm) y tiene el mismo problema, se toma un tiempo para pegar.He intentado :set paste y :set nowrap y siendo tan lento.Pegar la línea recta en un terminal es igual de lento

Con el dpaste enlace que mencionas, hay un vínculo de texto simple, que sólo podría wget y edición:

curl http://dpaste.com/115362/plain/ | vim -

Estoy a favor de establecer pegar / nopaste como sugirió Masi. En .vimrc, puede asignar algún carácter para alternar pegar (si es necesario).

es decir

set pastetoggle=§

¿probaste el modo pegar? establecer pegar / establecer nopaste?

si: sintaxis desactivada, a veces puede mejorar el pegado in situ de un archivo de una sola línea larga. Un ejemplo sería un archivo xml generado por máquina.

probablemente pueda deshabilitar el redibujo de vim mientras pega también, mire: vuelve a dibujar, pero siempre vale la pena usar cosas de la línea de comandos, ya que si repite el procedimiento o similar, siempre puede automatizarlo con un script / macro vim

No sé si se trata de un problema de Mac u otra cosa, pero no tengo ningún problema al pegar esa cantidad de texto en Vim. He intentado en Windows y Linux, y no he visto ningún problema.

He editado con éxito archivos de varios cientos de megas (archivos de registro) en Vim (la carga es lenta, pero una vez que se lee el texto, todo es bastante ágil).

Pero si está en la web, deberías haber intentado:

:e http://link/to/file 

Luego, si es necesario, guárdelo como un archivo local.

Y si es lento debido al rediseño, mire esta opción:

            *'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
'lazyredraw' 'lz'   boolean (default off)
            global
            {not in Vi}
    When this option is set, the screen will not be redrawn while
    executing macros, registers and other commands that have not been
    typed.  Also, updating the window title is postponed.  To force an
    update use |:redraw|.

Y si es un archivo local, entonces no es necesario pegar: intente

:read file 

en su lugar.

Si usa Apple Terminal, pruebe con otro terminal, como iTerm. A veces, el & Quot; build-in & Quot; El terminal no es realmente reactivo para una tarea común. No sé por qué ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top