it-swarm-eu.dev

Come tagliare / copiare / incollare in GVim su Ubuntu funziona con Ctrl + X, Ctrl + C, Ctrl + V?

Per impostazione predefinita, le scorciatoie taglia/copia/incolla in GVim su Ubuntu sono:

 Taglia "+ x 
 Copia" + y 
 Incolla "+ gP 

Mi piacerebbe utilizzare le combo di tasti di controllo in GVim, come utilizzo in Firefox e in altre applicazioni gnome. Come posso configurare GVim per funzionare come le altre app di Gnome?

52
pcapademic

Aggiungi le seguenti righe al tuo _vimrc o .vimrc

source $VIMRUNTIME/mswin.vim
behave mswin

Ma attenzione, la modalità visuale è quindi CTRL-Q invece di CTRL-V.

Per una panoramica di cosa mswin.vim vede il mswin.vim sourcode . Viene commentato molto bene e se qualche comando non è chiaro, puoi facilmente cercarlo nell'aiuto di vim.

Ecco una breve panoramica compilata dalla fonte:

  • i tasti backspace e cursore si posizionano sulla riga precedente/successiva
  • CTRL-X e SHIFT-Del sono tagliati
  • CTRL-C e CTRL-Insert sono copie
  • CTRL-V e SHIFT-Insert sono Incolla
  • Usa CTRL-Q per fare ciò che CTRL-V ha usato per fare
  • Usa CTRL-S per salvare, anche in modalità Inserisci
  • CTRL-Z è Annulla; non in cmdline però
  • CTRL-Y è Redo (anche se non si ripete); non in cmdline però
  • Alt-Space è il menu di sistema
  • CTRL-A è Seleziona tutto
  • CTRL-Tab è Next window
  • CTRL-F4 è la finestra Chiudi

Alla richiesta di Nippysaurus: ho inserito il mio .gvimrc per mostrare Ctrl-V oltre a Incolla nel menu:

unmenu! Edit.Paste
aunmenu Edit.Paste
nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V        "+gP
cnoremenu    &Edit.&Paste<Tab>Ctrl-V        <C-R>+

Non l'ho testato a fondo, solo un rapido controllo se ha fatto quello che mi aspettavo. Funziona per me, spero che funzioni per te ;-)

50
Ludwig Weinzierl

Se vuoi tagliare/copiare/incollare per lavorare usando i tasti di scelta rapida "standard", ma non vuoi cambiare nessuna delle altre opzioni di configurazione in gvim, prova ad aggiungere quanto segue a ~/.vimrc.

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

Incolla funziona solo in modalità di visualizzazione e inserimento, quindi non devi preoccuparti del conflitto con Ctrl-V e la modalità visiva a blocchi. Questo non è un problema, perché Copy and Cut ti mette in modalità di inserimento, quindi puoi subito incollare. Se lo provi, scoprirai che è completamente naturale.

Sono arrivato con questa configurazione dopo diverse iterazioni di tweaking, e penso che sia "perfetto" ora. Se sei anche un po 'insoddisfatto della tua attuale configurazione di copia/incolla, prova questo e scommetto che ti piacerà.

44
Cogan

Se si desidera mantenere il normale comportamento di Vim, ma anche consentire un uso meno ingombrante degli Appunti di sistema, vedere Accedere agli Appunti di sistema . Se desideri che gvim usi gli Appunti di sistema come buffer predefinito (quindi qualsiasi comando x, y, p, ecc. Usa gli appunti) quindi aggiungi la seguente riga al tuo vimrc:

set clipboard=unnamed

Personalmente uso i buffer molto più all'interno di vim che tra vim e il sistema; quindi preferirei avere una scorciatoia leggermente più macchinosa di quella che i miei appunti di sistema siano costantemente danneggiati. Ma è bello che l'opzione è lì per coloro che lo preferirebbero.

9
jtb

Penserei che è possibile aggiungere questo con il comando: imap (provato solo con Ctrl + X in Windows che ha funzionato, premendo ctrl + c sembra annullare il comando anche se così si potrebbe doverlo fare in vimrc).

:imap <C-X> "+x
:imap <C-C> "+y 
:imap <C-V> "+gP

Se lo aggiungi al tuo ~/.vimrc devi solo rimuovere:: di fronte a imap.

imap aggiunge solo i binding in modalità di inserimento, quindi potresti cambiarlo semplicemente per mappare o qualcos'altro. Esamina :help mapmode per ulteriori informazioni su rimappatura e rimozione di materiale.

In bocca al lupo!

2
Peter Thorin