Yank archivo completo


126

A menudo escribo algo en gVim, luego necesito copiarlo y pegarlo en otra aplicación.

¿Hay una manera fácil de tirar todo el archivo? Usualmente hago algo como esto

ggVG"+y

(Ir arriba, modo de línea visual, ir abajo, tirar)

¿Pero hay una mejor manera que me estoy perdiendo?

Respuestas:


201

Yo uso las siguientes instrucciones: :%y+


66
¿Qué hace el +, por favor?
VoY

55
Este es un registro relacionado con el portapapeles. El mismo que el OP utilizó en su pregunta. => :h :y,:h registers
Luc Hermitte

55
@VoY: Debe haber compilado la propiedad del Portapapeles en Vim para que funcione "+ portapapeles". Significa "todo se retira al portapapeles externo en un administrador de ventanas". Esta propiedad no es de facto, pero viene con algunos gráficos vims aparentemente de facto como gVim. Por favor, corríjame si estoy equivocado (acabo de notar esto cuando tuve que usar yank en Windows gVim, por lo que no puedo estar totalmente seguro, por supuesto, pero creo que esta es la propiedad).
hhh

8
Si el registro + no funciona para usted en ubuntu 11.04+, intente instalar gVim (apt-get install vim-gnome). Esto proporcionará la propiedad + portapapeles en la versión de terminal de vim también
adharris

3
Solía ​​hacerlo, gg"+YGpero nunca me gustó porque perdí la línea original en la que estaba. ¡Esto es perfecto!
verboze

56

ggyG (vaya a la primera línea, tire de la última línea)

Editar: Ah, portapapeles del sistema. No se sale exactamente de los dedos, pero:gg"+yG


1
Gracias, esto funciona para mí, no:% y +. Pero, ¿cómo lo pego en localhost desde el control remoto? :)
valk

1
Entonces, ¿básicamente este comando sube a la parte superior del documento, y hace algo, tira hacia la parte inferior del documento? ¿Qué hace "hacer aquí?"
geoyws

1
@Geoyws "dice que quiere trabajar con un registro. "+es un registro que está vinculado al portapapeles del sistema. "+yGtira todo hasta el final del archivo en este registro. :help "+
Annika Backstrom

15

Una solución de trabajo en el viejo vi está :r filenameen el nuevo archivo.


55
Aunque esta no es exactamente una respuesta a la pregunta, fue la respuesta a la mía . Gracias.

2
Necesito agregar un cero para pegarlo al comienzo del archivo::0r filename
Stefan van den Akker



6

Yo uso la siguiente instrucción: :%y.


... no sobre diferentes ventanas en el administrador de ventanas. + al final lo tira al portapapeles externo (aparentemente lo que el operador intenta hacer)
hhh



3

En OSX:

ggVG
!tee >(pbcopy)

Lo cual me parece más agradable que:

ggVG
:w !pbcopy

Como no muestra un aviso: " Press ENTER or type command to continue"


1

:%ysin +trabajos en todo el sistema si está utilizando neo-vim (nvim).

Esto nos permite evitar estirar los dedos hacia el +- haciendo que este atajo sea mejor que ggyG.


0

Dependiendo de la frecuencia con que lo haga, simplemente asigne una clave para esto y, opcionalmente, agréguelo al vimrc

:nnoremap <F5> :%y

o

:nnoremap <leader><whatever> :%y

o cualquier tecla que sepa que es segura y más rápida, luego agregue a una fuente de asignaciones o lo que sea. La ventaja de esto ggyGes que no mueve el cursor (más rápido) y para mantener la posición del cursor, tendría que agregar un<Ctrl-o><Ctrl-o>

La gente a menudo olvida que los comandos se basan en la sesión a menos que estén en el vimrc. A menudo sé cuándo voy a hacer algo, pero no lo necesito por defecto y solo:[mode]remap <whatever> <whatever>

Puedo cerrar y volver a abrir vim si lo necesito.

Si <Ctrl-A><Ctrl-C>funciona para usted, entonces está usando mswin.vim en su fuente y está perdiendo el poder de las operaciones de incremento <Ctrl-a>y decremento <Ctrl-x>(entre otras cosas). Comencé en Windows y dejé de usar mswin.vim hace mucho tiempo. Personalmente, creo que es mejor tocar Vim de la manera correcta y luego agregar las muletas que realmente necesita: P


2
Bienvenido a Stackoverflow. El editor admite el formateo , así que considere envolver sus ejemplos de código (como los comandos que utilizó) en comillas ( `) o bloques de código.
Jan Kundrát

-1

Está sucio pero no tiene que usar la tecla Mayús en absoluto y solo 3 teclas diferentes que pueden ser más rápidas:

gg1111yy

(Suponiendo que el archivo es más corto que 1111 líneas)


-2

En Windows, a menudo solo hago CTRL-A, CTRL-C para copiar todo al portapapeles de Windows ... ¡No puede ser más fácil que eso!

Estoy usando un gvim 7.1 estándar del sitio web ...

(Por cierto: también funciona en mi mac con MacVim y esa divertida tecla mac + A, tecla mac + C)


1
Windows gvim agrega algunos accesos directos adicionales que no están en las otras versiones, para tratar de que se adapte mejor a los usuarios de Windows. ctrl + a, ctrl + c, son dos ejemplos de ellos.
davr

9
Mm, ctrl-c tiene un significado bastante diferente para un usuario terminal.
Xiong Chiamiov

Seguro, pero cuando en las ventanas, hacer que las ventanas hacer :) Simplemente decir, gvim y el honor MacVim las plataformas de accesos directos estándar del portapapeles - no hay nada malo con su uso, ya sea ....
Daren Thomas

44
Es mejor que no uses vim en absoluto, si quieres usar atajos como estos.
VoY

1
CTRL-A incrementa el número debajo del cursor.
Alexcp
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.