Domanda

Esiste un modo per copiare tutte le righe dal file aperto negli appunti nell'editor VI.ho provato G ma non utilizza gli appunti per memorizzare quelle righe.

Quindi è possibile?

È stato utile?

Soluzione

Dovresti spostare il testo in * o + registri :

g g quot &; * y G

Spiegazione:

  • gg per portare il cursore sul primo carattere del file
  • "*y per avviare un comando yank nel registro G dalla prima riga, fino a ...
  • <=> per andare alla fine del file

Altri suggerimenti

Utilizzo:

:%+

per strappare tutte le linee.

Spiegazione:

  • % per fare riferimento al comando successivo per lavorare su tutte le linee
  • y per strattonare quelle linee
  • + per copiare negli appunti di sistema

NB:In Windows, + E * sono equivalenti vedi questa risposta.

su Mac

  • copia la parte selezionata: seleziona visivamente il testo (digita v o V in modo normale modalità) e digitare :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, gg"+ 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 con VI, è semplicemente digitando " cat nomefile " ;. Riecheggerà il file sullo schermo e quindi potrai semplicemente scorrere su e giù e copiare / incollare.

Questo è quello che faccio per strappare 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 per impostazione predefinita. 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 gli appunti funzionalità.

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

Su Arch Linux

puoi installare vim-clipboard per lo stesso motivo.

Puoi usare " cat " comando per aprire il file e usare il mouse per copiare

Se stai usando Vim in modalità visiva, si applicano anche le chiavi taglia e incolla standard, almeno con Windows.

  • CTRL A significa " Contrassegna l'intero file.
  • CTRL C significa " Copia la selezione.
  • ESC significa " Deseleziona, quindi la prossima pressione del tasto non sostituisce l'intero file :-)

Almeno sotto il terminale Ubuntu (Gnome), funziona anche la copia standard ( CTRL SHIFT C , anche se non sembra essere una scorciatoia da tastiera standard per select all (diverso da ALT E seguito da A ).

puoi premere gg per localizzare il cursore all'inizio del file, quindi premere yG per copiare tutto il contenuto dall'inizio alla fine (posizione G) in buffer.good luck!

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

Passaggio 1: vi <filename>
Passaggio 2: fare clic con il tasto destro sulla barra del titolo della finestra di Putty
Passaggio 3: selezionare & Quot; Cancella scrollback & Quot; (per evitare di copiare il resto della sessione SSH)
Passaggio 4: fare nuovamente clic con il pulsante destro del mouse e selezionare & Quot; Copia tutto negli appunti & Quot ;.

:%y a Copia tutto il contenuto nel buffer di VIM, Premendo p in modalità comando si incolla il contenuto strappato dopo la riga su cui si trova attualmente 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.

Non c'era un concetto di " appunti " in vi di Bill Joy, quindi non credo che ci sia un modo integrato per farlo.

La funzione automatica copia-qualsiasi-evidenziata-negli-appunti di gVim è più semplice o usa un programma esterno tramite:!

Per Cygwin's vim io uso

:%!putclip
u

Forse Ubuntu ha un'app CLI come putclip ??

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

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

  1. gg per ottenere il cursore sulla prima riga
  2. inserisci 78 + <=> - > tira 78 righe sotto il cursore e la riga corrente

Se le dita sono impostate su CTRL-A CTRL-C, prova le mappature da $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

Li ho mappati su <Leader><C-a> e <Leader><C-c>.

Copia l'intero file all'interno di vim o delle sue schede

y G 

quindi passa a una scheda e incolla di

p

e per tagliare l'intero file usa

d G

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

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

Aggiungilo al tuo .vimrc e sei a posto ...

So che dieci anni su questo aspetto dovrebbero essere risolti, ma le prime due risposte non hanno funzionato per me, quindi ho continuato a scavare. Su un Redhat (server remoto) - Windows 10 (macchina locale), se non riesci a selezionare l'intera cosa con il mouse, rimani bloccato perché le normali copie non funzionano tra il telecomando e gli appunti della macchina locale.

Quindi, per copiare su Linux remoto e incollare su Windows locale, specificare il buffer primario con * e fare un bel doppio tiro

Usa gg" * y y .

Ho aggiunto la seguente riga al mio .vimrc

nnoremap <F5> :%y+<CR>

Questo mi permette di copiare tutto il testo in Vim negli Appunti premendo F5 (in modalità comando).

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

  1. Modifica le impostazioni della tua sessione PuTTY, vai alla registrazione e modificalo in " caratteri stampabili " ;. Imposta il file di registro
  2. Crea un gatto del rispettivo file
  3. Vai al file impostato nel passaggio n. 1 e avrai i tuoi contenuti 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, elimina il file di registro e inserisci il file di destinazione in modo da ottenere il contenuto di quel particolare file copiato sul tuo computer.

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

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

OBS: se stai usando neovim hai bisogno anche di un gestore di appunti come xclip. per ulteriori informazioni digitare neovim :h checkhealth

È anche importante ricordare che non sempre un semplice y verrà copiato negli Appunti, al fine di rendere ogni copia del feed + che è " Appunti Register " prova a impostare: :set clipboard=unnamed,unnamedplus. Per ulteriori informazioni, consultare: :h unnamed.

Qui maggiori informazioni su vim wikia.

Fai clic con il pulsante sinistro del mouse, trascina attraverso la sezione che desideri copiare e rilasciare. Il codice viene automaticamente copiato negli appunti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top