Copia, taglia e incolla in Vim ed Emacs

Gli editor testuali avanzati come Vim ed Emacs possono essere eseguiti, almeno nelle versioni più recenti, in modalità grafica, sono quindi presenti icone nella toolbar che permettono di gestire le normali operazioni taglia, copia e incolla.

In realtà però sia Emacs che Vim sono stati concepiti per gli utenti avanzati, per questo la maggior parte delle operazioni possono essere eseguite tramite combinazioni di tasti, il che limita l’uso del mouse e conseguentemente permette al programmatore di non staccare mai le mani dalla tastiera: questo si traduce ovviamente in una maggiore velocità operativa.

Per i novizi, però, è difficile sfruttare queste caratteristiche, in quanto i normali shortcut come CTRL-C e CTRL-V non sono supportati.

Vediamo quindi, nella tabella qui sotto, quali sono le corrispondenti combinazioni di tasti in Vim ed Emacs:

Comando Standard Vim 1 Vim, altre app. 2 Emacs
Taglia CTRL-X x "+x CTRL-W
Copia CTRL-C y "+y ALT-W
Incolla CTRL-V p "+p CTRL-Y
Seleziona SHIFT-frecce v frecce 3 CTRL-spazio frecce 3
Annulla CTRL-Z u CTRL-X u 3
Incolla
precedente
CTRL-Y ALT-Y 4
Taglia nel
registro c
"cx 5
Copia nel
registro c
"cy 5
Incolla dal
registro c
"cp 5

1 = In Vim, se ci si trova nella modalità di inserimento testo, bisogna premere il tasto Esc prima di poter digitare dei comandi. Successivamente, per tornare a digitare il testo, utilizzare il comando a (append, per posizionare il cursore subito dopo il carattere selezionato) o il comando i (insert, cursore prima del carattere selezionato).

2 = Vim di default memorizza i dati in un blocco note diverso da quello del sistema operativo , quindi se si desidera inviare dati ad altre applicazioni, o incollare in Vim dati provenienti da altri programmi, bisogna utilizzare i comandi indicati (oppure le icone in modalità grafica). La sintassi (notare le virgolette) è uguale a quella dei registri (v. sotto), solo che si usa un registro speciale contraddistinto dal simbolo +.

3 = In questo caso l’operazione viene eseguita tramite una sequenza: bisogna digitare prima un comando e poi il successivo: i tasti non vanno premuti tutti contemporaneamente. Nella tabella, per distinguere tra il primo e il secondo comando, è presente uno spazio, ma nell’inserimento non bisogna premere la barra spaziatrice. Questo tipo di sequenze è comune soprattutto in Emacs.

4 = Emacs memorizza non solo i dati dell’ultima operazione di taglio o di copia, ma anche le stringhe precedenti: per incollarle bisogna premere una volta sola CTRL-Y e poi più volte ALT-Y, fino a raggiungere la stringa desiderata.

5 = Vim memorizza solo i dati dell’ultima operazione di copia o di taglio, non delle precedenti, quindi per salvare una stringa per un futuro utilizzo è necessario metterla in un registro. Qui, a titolo di esempio, è illustrata la sintassi per utilizzare il registro denominato c, ma esiste un registro per ognuna delle lettere dell’alfabeto e per ognuno dei numeri da 0 a 9, per utilizzare un altro registro basta inserire la lettera o il numero corrispondente dopo il simbolo delle virgolette.