Copia tutte le linee negli appunti

C’è un modo per copiare tutte le linee dal file aperto negli appunti nell’editor VI. Ho provato y G ma non sta usando gli appunti per memorizzare quelle linee.

Quindi è ansible?

Dovresti strattonare il testo nei registri * o + :

g g " * y G

Spiegazione:

  • gg per portare il cursore sul primo carattere del file
  • "*y per avviare un comando di strattone al registro * dalla prima riga, fino a …
  • G per andare alla fine del file

Uso:

: % y +

per tirare tutte le linee.

Spiegazione:

  • % per riferirsi al prossimo comando per lavorare su tutte le linee
  • y per strattonare quelle linee
  • + per copiare negli appunti del sistema

NB : In Windows, + e * sono equivalenti, vedere questa risposta.

su Mac

  • copia la parte selezionata: seleziona visivamente il testo (digita v o V in modalità normale) e digita :w !pbcopy

  • copia l’intero file :%w !pbcopy

  • passato dagli appunti :r !pbpaste

Gli appunti sono buffer + . Per copiare negli appunti, fai " + y e [movimento].

Quindi, g g " + y G copierà l’intero file.

Allo stesso modo, per incollare dagli appunti, " + p

Un altro modo semplice per copiare l’intero file se si riscontrano problemi nell’utilizzo di VI, è semplicemente digitando “nomefile cat”. Fa echeggiare il file sullo schermo e quindi puoi semplicemente scorrere su e giù e copiare / incollare.

Questo è quello che faccio per strattonare l’intero file:

 ggVGy 

(in risposta a @rshdev, e per evitare di dover ricompilare vim con + xterm_clipboard per @nelstrom nei commenti su OP)

c’è un programma chiamato xclip che funziona come putclip su Ubuntu 11:

 :%!xclip -sel clip u 

non è installato di default. per installare, utilizzare:

 sudo apt-get install xclip 

Su Ubuntu 12

potresti provare a installare il pacchetto vim-gnome :

 sudo apt-get install vim-gnome 

L’ho provato, perché vim --version mi ha detto che avrebbe disabilitato la bandiera xterm_clipboard (indicata da ), che è necessaria per usare la funzionalità degli appunti.

-> l’installazione del pacchetto vim-gnome su Ubuntu 12 ha anche installato una versione basata su console di vim, che ha questa opzione abilitata (indicata da + prima del flag xterm_clipboard)

Su Arch Linux

puoi installare vim-clipboard per lo stesso motivo.

Ho provato alcuni dei comandi che le persone hanno menzionato sopra. Nessuno ha funzionato. Poi ho ottenuto il più semplice di tutti.

Passaggio 1: vi
Passaggio 2: fare clic con il pulsante destro sulla barra del titolo della finestra Putty
Passaggio 3: selezionare “Cancella scorrimento” (per evitare di copiare il resto della sessione SSH)
Passaggio 4: fare nuovamente clic con il pulsante destro e selezionare “Copia tutto negli appunti”.

puoi premere gg per individuare il tuo cursore all’inizio del file, quindi premere yG per copiare tutto il contenuto dall’inizio alla fine (G localizzato) al buffer. Buona fortuna!

Se si utilizza Vim in modalità visiva, si applicano anche i tasti standard di copia e incolla, almeno con Windows.

  • CTRL A significa “Contrassegna l’intero file.
  • CTRL C significa “Copia la selezione.
  • ESC significa “Deseleziona, quindi la prossima pressione di un tasto non sostituisce l’intero file 🙂

Sotto Ubuntu terminal (Gnome) almeno, la copia standard funziona anche ( CTRL SHIFT C , anche se non sembra essere una scorciatoia da tastiera standard per select all (tranne ALT E seguita da A ).

:%ya Carica tutto il contenuto nel buffer di vim, Premendo p in modalità comando si incolla il contenuto strappato dopo la linea in cui si trova il cursore.

gVim:

 :set go=a 

g g V G

Vedi :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. 

Puoi usare il comando “cat” per aprire il file e usare il mouse per copiare

Non c’era un concetto di “blocco appunti” in vi di Bill Joy, quindi non penso che ci sia un modo integrato per farlo.

La funzione di copia automatica di qualsiasi cosa è evidenziata nella clipboard di gVim è più semplice o usa un programma esterno tramite:!

Io uso per Cygwin’s vim

 :%!putclip u 

Forse Ubuntu ha un’app CLI come il putclip ??

Bene, tutti questi approcci sono interessanti, tuttavia come programmatore pigro io uso tutta la riga di yank usando la combinazione di numero + y

per esempio hai un file di codice sorgente con un totale di 78 linee, puoi fare come di seguito:

  1. gg per ottenere il cursore sulla prima riga
  2. inserisci 78 + y -> esso tira 78 linee sotto il cursore e la linea corrente

Se le tue dita sono predefinite in CTRL-A CTRL-C , prova i mapping da $VIMRUNTIME/mswin.vim .

 " CTRL-C and CTRL-Insert are Copy vnoremap  "+y " CTRL-A is Select all noremap  gggHG inoremap  gggHG cnoremap  gggHG onoremap  gggHG snoremap  gggHG xnoremap  ggVG 

Li ho mappati a e .

Ecco un comando mappa per selezionare tutto negli appunti utilizzando CTRL + a :

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

Aggiungilo al tuo .vimrc e sei a posto …

Copiare l’intero file all’interno di Vim o delle sue tabs

 y G 

quindi passare a una scheda e incollare da

 p 

e per tagliare l’intero file

 d G 

Non sono riuscito a copiare i file usando le risposte sopra ma ho stucco e ho trovato una soluzione alternativa su Quora.

  1. Cambia le impostazioni della tua sessione PuTTY, vai al log e cambialo in “caratteri stampabili”. Imposta il file di registro
  2. Fai un gatto del rispettivo file
  3. Vai al file che hai impostato al punto # 1 e avrai il tuo contenuto nel file di registro.

Nota: copia tutti i caratteri stampati di quella sessione nel file di registro, quindi alla fine diventerà grande. In tal caso, eliminare il file di registro e inserire il file di destinazione in modo da ottenere il contenuto di quel particolare file copiato sul proprio computer.

Ho creato una funzione per eseguire questa azione, posizionarla sul tuo ~/.vimrc .

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

OBS: se stai usando neovim hai bisogno anche di un gestore di appunti come xclip. per maggiori informazioni scrivi in ​​neovim :h checkhealth

È anche importante ricordare che non sempre una semplice copia negli Appunti, al fine di rendere ogni feed di copia + che è “Registro appunti” tenta di impostare :set clipboard=unnamed,unnamedplus . Per maggiori informazioni vedere :h unnamed .

Qui ulteriori informazioni su vim wikia.

Fare clic con il tasto sinistro del mouse, trascinare sulla sezione che si desidera copiare e rilasciare. Il codice viene automaticamente copiato negli Appunti.