Yank intero file


126

Scrivo spesso qualcosa in gVim, quindi devo copiarlo e incollarlo in un'altra applicazione.

C'è un modo semplice per strappare l'intero file? Di solito faccio qualcosa del genere

ggVG"+y

(Vai in alto, modalità linea visiva, vai in fondo, strattone)

Ma c'è un modo migliore che mi sto perdendo?

Risposte:


201

Uso le seguenti istruzioni: :%y+


6
Cosa fa il +, per favore?
VoY

5
Questo è un registro relativo agli appunti. Lo stesso usato dall'OP nella sua domanda. => :h :y,:h registers
Luc Hermitte,

5
@VoY: Devi avere compilato la proprietà Appunti in Vim per far funzionare questo "+ appunti". Significa "tutto strattonato a un gestore di appunti esterno in un gestore di finestre". Questa proprietà non è di fatto ma viene fornita con alcune grafiche grafiche apparentemente di fatto come gVim. Per favore, correggimi se sbaglio (ho appena notato questa cosa quando ho dovuto usare yank in Windows gVim, quindi non posso essere del tutto sicuro, ma credo che questa sia la proprietà).
hhh,

8
Se il registro + non funziona in Ubuntu 11.04+, prova a installare gVim (apt-get install vim-gnome). Questo fornirà la proprietà + appunti anche nella versione terminale di vim
adharris il

3
Lo gg"+YGfacevo ma non mi è mai piaciuto perché ho perso la linea originale in cui mi trovavo. Questo è perfetto!
verboze,

56

ggyG (vai alla prima riga, tira all'ultima riga)

Modifica: Ah, appunti di sistema. Non rotola esattamente dalle dita, ma:gg"+yG


1
Grazie, questo funziona per me, non:% y +. Ma come posso incollarlo su localhost dal telecomando? :)
Valk,

1
Quindi in pratica questo comando arriva fino alla cima del documento e fa qualcosa, strattona fino alla fine del documento? Cosa significa "fare qui?
geoyws,

1
@Geoyws "dice che vuoi lavorare con un registro. "+è un registro collegato agli Appunti di sistema. "+yGrimuove tutto fino alla fine del file in questo registro. :help "+
Annika Backstrom,

15

Una soluzione funzionante nella vecchia vi è :r filenamenel nuovo file.


5
Anche se questa non è esattamente una risposta alla domanda, è stata la mia risposta . Grazie.

2
Devo aggiungere uno zero per incollarlo all'inizio del file::0r filename
Stefan van den Akker



6

Io uso le seguenti istruzioni: :%y.


... non su finestre diverse in Gestione finestre. + alla fine lo strappa agli appunti esterni (apparentemente quello che l'operazione cerca di fare)
hhh



3

In OSX:

ggVG
!tee >(pbcopy)

Che trovo più bello di:

ggVG
:w !pbcopy

Dal momento che non lampeggia un prompt: " Press ENTER or type command to continue"


1

:%ysenza +funziona su tutto il sistema se stai usando neo-vim (nvim).

Questo ci consente di evitare di allungare le dita verso +- rendendo questa scorciatoia migliore di ggyG.


0

A seconda di quanto spesso lo fai, basta mappare una chiave per questo e facoltativamente aggiungere a Vimrc

:nnoremap <F5> :%y

o

:nnoremap <leader><whatever> :%y

o qualunque chiave tu sappia sia sicura ed è più veloce, quindi aggiungi a una sorgente di mappature o altro. Il vantaggio di questo ggyGè che non sta spostando il cursore (più velocemente) e per mantenere la posizione del cursore dovresti aggiungere un<Ctrl-o><Ctrl-o>

Le persone spesso dimenticano che i comandi sono basati sulla sessione, a meno che nel vimrc. So spesso quando farò molte cose, ma non ne ho bisogno come impostazione predefinita e giusta:[mode]remap <whatever> <whatever>

Posso chiudere e riaprire vim se necessario.

Se <Ctrl-A><Ctrl-C>funziona per te, stai usando mswin.vim nella tua fonte e stai perdendo la potenza delle operazioni di incremento <Ctrl-a>e decremento <Ctrl-x>(tra le altre cose). Ho iniziato da Windows e ho smesso di usare mswin.vim molto tempo fa. Personalmente ritengo che sia meglio grok Vim nel modo giusto e quindi aggiungere le stampelle di cui hai davvero bisogno: P


2
Benvenuto in StackOverflow. L'editor supporta la formattazione , quindi considera di includere gli esempi di codice (come i comandi che hai usato) in backtick ( `) o blocchi di codice.
Jan Kundrát,

-1

È sporco ma non è necessario utilizzare il tasto Maiusc e solo 3 diversi tasti che potrebbero essere più veloci:

gg1111yy

(Supponendo che il file sia inferiore a 1111 righe)


-2

Su Windows faccio spesso CTRL-A, CTRL-C per copiare tutto negli appunti di Windows ... Non posso essere più facile di così!

Sto usando un gvim 7.1 standard dal sito Web ...

(A proposito: funziona anche sul mio mac con MacVim e quel divertente mac-key + A, mac-key + C)


1
windows gvim aggiunge alcune scorciatoie extra che non sono nelle altre versioni, per provare a adattarlo meglio agli utenti di Windows. ctrl + a, ctrl + c, sono due esempi di quelli.
davr

9
Mm, ctrl-c ha un significato abbastanza diverso per un utente terminale.
Xiong Chiamiov,

certo, ma quando sei su windows, fai come fanno le finestre :) Detto solo, gvim e MacVim onorano le scorciatoie degli appunti standard delle piattaforme - non c'è niente di sbagliato nell'usarle ...
Daren Thomas,

4
Potrebbe anche non usare vim, se si desidera utilizzare scorciatoie come queste.
VoY

1
CTRL-A incrementa il numero sotto il cursore.
Alexcp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.