Vim copia-incolla tra i terminali


19

Il solito vim yanke pastefunziona solo nella stessa finestra (ma funziona attraverso i file e chiude / salva i comandi). È possibile farlo funzionare attraverso i terminali (strappare dalla finestra in un terminale e incollarlo in un altro) e se sì, come?

Risposte:


30

Probabilmente la cosa più semplice per provare è quello di mettere set clipboard=unnamednel vostro .vimrce riavviare le sessioni di vim.

Ciò consente di eseguire yank(ad esempio yy) in una finestra e put(ad esempio p) in un'altra finestra funzionerà, poiché tutte le sessioni VIM condivideranno lo stesso buffer di selezione X.

Il rovescio della medaglia, il buffer yank verrà sovrascritto non appena si seleziona del testo in qualsiasi altra finestra di qualsiasi applicazione.

Sul lato positivo, significa anche che tutto ciò che strattoni in vim può ora essere incollato in qualsiasi applicazione facendo clic con il pulsante centrale.

Se non ti piace in questo modo, puoi digitare "+o "*prima del tuo yank e inserire comandi, ad esempio "+yyper strappare una linea.

I +moduli interagiscono con gli appunti ( "+yè come Ctrl+ C, "+pè come Ctrl+ V).
I *moduli interagiscono con il buffer di selezione ( "*yè come fare clic e trascinare, "*pè come fare clic centrale).

Per ulteriori dettagli, consultare Selezione della GUI , Supporto per la selezione X11 e Appunti e opzioni del mouse .


3
Dio, adoro il clic centrale. :)
Dan M.

set clipboard=unnamednon funziona per me (l'ho inserito in .vimrc e ho riavviato tutte le sessioni di vim). Sfortunatamente, né gli altri metodi. Sembra che il mio vim non sia compilato con x-support. Sto usando VNC per connettermi a una macchina Linux da una macchina Windows.

3
Sì, questo metodo richiede il supporto X11. Esegui :echo has('x11'), se il supporto X è abilitato, verrà stampato 1.
Mikel,

0

Se si desidera copiare un intero file nel file di destinazione.

Apri il tuo file di destinazione in vim.

Posiziona il cursore nel punto desiderato e digita quanto segue:

:r /path_to_file/file.ext

Questo copierà un intero file nel punto in cui si trova il cursore ...

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.