Come copiare i contenuti incollati nell'editor vi

113

Ho provato a usare Ctrl + V per incollare i contenuti in un documento dell'editor vi, ma Ctrl + V non è interpretato come una pasta.

    
posta Rpj 16.02.2013 - 09:13

10 risposte

135

Per prima cosa, assicurati di essere in modalità di modifica (premi i ). Quindi puoi incollare con Ctrl + Shift + V , se sei in un emulatore di terminale come gnome-terminal (o seleziona "Incolla") dal menu di scelta rapida).

Puoi anche digitare :set paste in vim prima di incollare per disabilitare il rientro automatico, ecc. Quindi :set nopaste dopo aver incollato il contenuto.

Controlla anche questa domanda su stackoverflow.com per ulteriori informazioni.

Se vuoi copiare / incollare linee in vim (invece di incollare il contenuto degli appunti), ti consigliamo di controllare il comando yank . Ecco una scheda cheat che potrebbe essere di aiuto.

    
risposta data Attila O. 16.02.2013 - 09:27
52

Vi (e Vim) funziona in modo molto diverso rispetto a un normale editor di testo come Gedit. Ha anche una curva di apprendimento piuttosto ripida. Se vuoi imparare alcuni comandi di base, inizia con questo tutorial interattivo .

Tuttavia, per rispondere alla tua domanda. È possibile accedere al contenuto degli Appunti di sistema tramite il registro più. Quindi, per incollare qualcosa dagli Appunti di sistema che puoi, dalla modalità Normale, premi: "+ p (non contemporaneamente, ma uno dopo l'altro).

    
risposta data Daniel Jonsson 16.02.2013 - 09:34
22
  1. Se vuoi copiare i contenuti incollati all'interno dello stesso file , usa yank e paste .

  2. Se vuoi copiare i contenuti incollati tra i terminali , apri il primo file, strappando il testo desiderato, quindi apri il tuo secondo file all'interno di vim (ad esempio :tabnew /path/to/second/file ) e premi p per incollarlo.

  3. Se vuoi copiare il contenuto della pasta da vim a un programma esterno , devi accedere agli appunti del sistema. Presumo che tu usi Ubuntu. La versione GUI di vim ha sempre il supporto per gli appunti, tuttavia, se ti piace usare Vim da un terminale, dovrai controllare il supporto per X11-clipboard.

    Dalla console, digita:

    $ vim --version | grep xterm
    

    Se trovi -xterm_clipboard , hai due opzioni:

    1) Compila tu stesso, con il flag xterm_clipboard su

    2) Disinstalla vim, installa gvim (vim-gtk o vim-gnome). Puoi attaccare a non-gui vim chiamando Vim dal terminale, nello stesso modo in cui facevi prima. Questa volta quando controlli dovresti trovare + xterm_clipborad .

    Ora, quando inserisci del testo nel registro + all'interno del tuo editor di vim (ad esempio "+ yy), viene anche copiato negli appunti di sistema che puoi recuperare dal tuo programma esterno come gedit editor, usando Ctrl + V .

  4. Se vuoi copiare i contenuti incollati da un programma esterno in vim , prima copia il tuo testo negli appunti di sistema tramite Ctrl + C , quindi nell'editor di vim modalità di inserimento , fai clic sul pulsante centrale del mouse (di solito la ruota) o premi Ctrl + Maiusc + V per incollare.

    Questi sono 4 semplici copia & amp; incolla condizioni relative a vim. Spero che questo aiuti.

risposta data 47dev47null 20.02.2013 - 06:53
14

Io uso sempre Shift + Insert quando voglio incollare il testo nel terminale, funziona in tutti i programmi di terminale.

(che è anche il motivo per cui non ho mai un laptop dove non puoi premere Insert senza premere un tasto secondario)

    
risposta data Magnus Jonsson 17.02.2013 - 17:59
10

Utilizza il pulsante centrale del mouse per inserire il testo evidenziato altrove.

È utile quando non si ha accesso agli appunti del sistema (ad esempio, in una sessione SSH remota).

Deve essere in modalità di modifica / inserimento per Vim.

    
risposta data will-ob 16.02.2013 - 17:09
5

Dopo aver inserito vi, premi i per entrare in modalità inserimento, fai clic con il pulsante destro del mouse sul terminale, fai clic su Incolla.

    
risposta data GC 13 17.02.2013 - 07:34
3

Istruzioni dettagliate per copiare / incollare righe di testo in vi utilizzando yank e put

(usa quanto segue nella modalità di comando di vi)

Copia (YANK)

Per copiare una riga in vi:

  • In modalità comando, sposta il cursore sulla riga che deve essere copiata e digita yy o digita Y

Per copiare 2 righe in vi:

  • In modalità comando, sposta il cursore sulla prima riga che deve essere copiata e digita 2yy o digita 2Y

(allo stesso modo, qualsiasi numero di righe può essere copiato)

Per copiare tutte le linee dalla posizione corrente alla fine del file:

  • In modalità comando, sposta il cursore sulla prima riga che deve essere copiata e digita yG

Per copiare tutto il testo dalla posizione corrente alla fine della parola corrente:

  • In modalità comando, sposta il cursore nella posizione da cui il testo deve essere copiato e digita yw

Per copiare tutto il testo dalla posizione corrente alla fine della riga:

  • In modalità comando, sposta il cursore nella posizione da cui il testo deve essere copiato e digita y$

Incolla (PUT)

Per incollare il testo negli appunti - dopo la posizione del cursore:

  • Nella modalità comando, digita p

Per incollare il testo negli appunti - prima la posizione del cursore:

  • Nella modalità comando, digita P
risposta data slayernoah 03.11.2013 - 22:43
0

Se sei root : Ctrl + Maiusc + V

Se sei not-root : Center fai clic con il mouse.

    
risposta data Eliptical view 01.07.2017 - 08:54
0

Volevo solo notare che usando Vim tramite Git Bash su Windows, puoi semplicemente usare p o center-click del mouse senza essere in modalità di inserimento. Usando Vim attraverso PuTTY , puoi semplicemente fare clic con il pulsante destro del mouse. E l'evidenziazione fa la copia.

Ho notato questo perché sono arrivato qui non vedendo che questo è SE per Ubuntu.

Altri comandi utili:

  • yy (numero di righe) - yank (copia)
  • dd (numero di righe) - elimina
  • p - incolla la riga sotto la riga corrente
  • Maiusc + p - incolla la riga sopra la riga corrente
  • u - annulla
  • r - redo
  • i - inserisci la modalità
  • v - modalità visuale
risposta data Tyler Christian 21.07.2017 - 05:27
0

Ho riscontrato un problema, perché la mia installazione di Vim non supportava gli appunti :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Ho installato vim-gnome (che supporta gli appunti) e poi controllato di nuovo:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Ora sono in grado di copiare e incollare usando "+ y e" + p rispettivamente.

    
risposta data Ashutosh Tripathy 09.06.2018 - 13:35

Leggi altre domande sui tag