tutorial para mac editar descargar commands vim editor vi

para - vim pdf



Copia todas las lineas al portapapeles. (22)

gVim:

:set go=a

g g V G

Ver :help go-a :

''a'' Autoselect: If present, then whenever VISUAL mode is started, or the Visual area extended, Vim tries to become the owner of the windowing system''s global selection. This means that the Visually highlighted text is available for pasting into other applications as well as into Vim itself. When the Visual mode ends, possibly due to an operation on the text, or when an application wants to paste the selection, the highlighted text is automatically yanked into the "* selection register. Thus the selection is still available for pasting into other applications after the VISUAL mode has ended. If not present, then Vim won''t become the owner of the windowing system''s global selection unless explicitly told to by a yank or delete operation for the "* register. The same applies to the modeless selection.

¿Hay alguna forma de copiar todas las líneas desde el archivo abierto al portapapeles en el editor VI? Probé y G pero no está usando el portapapeles para almacenar esas líneas.

¿Entonces es posible?


(en respuesta a @rshdev, y para evitar tener que volver a compilar vim con + xterm_clipboard por @nelstrom en comentarios sobre OP)

hay un programa llamado xclip que funciona como putclip en Ubuntu 11:

:%!xclip -sel clip u

no está instalado por defecto para instalar, utilizar:

sudo apt-get install xclip


Aquí hay un comando de mapa para seleccionar todo en el portapapeles usando CTRL + a :

" " select all with control-a " nnoremap <C-a> ggmqvG"+y''q

Agrégalo a tu .vimrc y ya estás listo para ir ...


Bueno, todos estos enfoques son interesantes, sin embargo, como programador perezoso utilizo yank all line usando una combinación de número + y

por ejemplo, tiene un archivo de código fuente con un total de 78 líneas, puede hacer lo siguiente:

  1. gg para obtener el cursor en la primera línea
  2. inserte 78 + y -> tira 78 líneas debajo de su cursor y la línea actual

Copie todo el archivo dentro del vim o sus pestañas

y G

luego pasar a una pestaña y pegar por

p

y cortar todo el uso del archivo.

d G


Debes tirar el texto a los registers * o + :

g g " * y G

Explicación:

  • gg para obtener el cursor al primer carácter del archivo
  • "*y para iniciar un comando de tirón al registro * desde la primera línea, hasta que ...
  • G para ir al final del archivo

El portapapeles es buffer + . Para copiar al portapapeles, haga " + y y [movimiento].

Entonces, g g " + y G copiará el archivo completo.

Del mismo modo, para pegar desde el portapapeles, " + p


Esto es lo que hago para tirar todo el archivo:

ggVGy


Haga clic en el botón izquierdo del ratón, arrastre en la sección que desea copiar y suelte. El código se copia automáticamente al portapapeles.


He creado una función para realizar esta acción, colóquela en su ~/.vimrc .

fun! CopyBufferToClipboard() %y+ endfun nnoremap <Leader>y :call CopyBufferToClipboard()<CR> command! -nargs=0 CopyFile :call CopyBufferToClipboard()

OBS: Si está utilizando neovim, también necesita algún administrador de portapapeles como xclip. para más información escriba neovim :h checkhealth

También es importante mencionar que no siempre una simple y se copiará en el portapapeles, para hacer que cada fuente de copia + que es el "Registro del Portapapeles" intente configurar :set clipboard=unnamed,unnamedplus . Para más información ver :h unnamed .

Here más información sobre vim wikia.


No había un concepto de "portapapeles" en Bill Joy''s vi, así que no creo que haya una forma integrada de hacerlo.

La función de copia automática de cualquier cosa de gVim resaltada en el portapapeles es más fácil o utiliza un programa externo a través de:!

Para el vim de Cygwin yo uso

:%!putclip u

Tal vez Ubuntu tiene una aplicación de CLI como putclip?


No pude copiar archivos usando las respuestas anteriores, pero tengo masilla y encontré una solución en Quora.

  1. Cambie la configuración de su sesión de PuTTY, vaya al registro y cámbielo a "caracteres imprimibles". Establecer el archivo de registro
  2. Hacer un gato del archivo respectivo.
  3. Vaya al archivo que estableció en el paso # 1 y tendrá su contenido en el archivo de registro.

Nota: copia todos los caracteres impresos de esa sesión al archivo de registro, por lo que eventualmente se volverá grande. En ese caso, elimine el archivo de registro y active el archivo de destino para que copie el contenido de ese archivo en particular en su máquina.


Otra forma fácil de copiar el archivo completo si tiene problemas al usar VI, es simplemente escribiendo "cat filename". Hará eco del archivo a la pantalla y luego puede desplazarse hacia arriba y hacia abajo y copiar / pegar.


Probé algunos de los comandos que las personas han mencionado anteriormente. Ninguno funciono Entonces me hice con el más simple de todos.

Paso 1: vi <filename>
Paso 2: haz clic derecho en la barra de título de la ventana Masilla
Paso 3: Seleccione "Borrar scrollback" (para evitar copiar el resto de su sesión de SSH)
Paso 4: Haz clic derecho nuevamente y selecciona "Copiar todo al portapapeles".


Puede usar el comando "cat" para abrir el archivo y usar el mouse para copiar


Si está utilizando Vim en modo visual, las teclas estándar de cortar y pegar también se aplican, al menos con Windows.

  • CTRL A significa "Marcar todo el archivo.
  • CTRL C significa "Copiar la selección.
  • ESC significa "Anular la selección, por lo que la siguiente pulsación de tecla no reemplaza todo el archivo :-)

Al menos en el terminal de Ubuntu (Gnome), la copia estándar también funciona ( CTRL MAYÚS C , aunque no parece haber un método abreviado de teclado estándar para select all (excepto ALT E seguido de A ).


Si sus dedos están predeterminados en CTRL-A CTRL-C , intente las asignaciones de $VIMRUNTIME/mswin.vim .

" CTRL-C and CTRL-Insert are Copy vnoremap <C-C> "+y " CTRL-A is Select all noremap <C-A> gggH<C-O>G inoremap <C-A> <C-O>gg<C-O>gH<C-O>G cnoremap <C-A> <C-C>gggH<C-O>G onoremap <C-A> <C-C>gggH<C-O>G snoremap <C-A> <C-C>gggH<C-O>G xnoremap <C-A> <C-C>ggVG

Los tengo asignados a <Leader><Ca> y <Leader><Cc> .


Utilizar:

: % y +

para tirar todas las lineas.

Explicación:

  • % para referir el siguiente comando para trabajar en todas las líneas
  • y tirar de esas lineas
  • + para copiar al portapapeles del sistema

NB : En Windows, + y * son equivalentes, vea esta respuesta.


en Mac

  • copie la parte seleccionada: seleccione visualmente el texto (escriba v o V en modo normal) y escriba :w !pbcopy

  • Copie el archivo completo :%w !pbcopy

  • pasado del portapapeles :r !pbpaste


puede presionar gg para ubicar el cursor al inicio del archivo, luego presionar yG para copiar todo el contenido desde el principio hasta el final (G ubicado) a buffer.good suerte!


:%ya Tiras todo el contenido en el búfer de vim. Al presionar p en el modo de comando, se pegará el contenido tirado después de la línea en la que se encuentra el cursor.


En Ubuntu 12

puede intentar instalar el paquete vim-gnome :

sudo apt-get install vim-gnome

Lo intenté, porque vim --version me dijo que tendría el indicador xterm_clipboard deshabilitado (indicado por - ), que es necesario para usar la funcionalidad del portapapeles.

-> la instalación del paquete vim-gnome en Ubuntu 12 también instaló una versión basada en consola de vim, que tiene esta opción habilitada (indicada con un + antes del indicador xterm_clipboard)

En arch linux

Puede instalar vim-clipboard por el mismo motivo.