{"id":196,"date":"2011-08-21T06:41:30","date_gmt":"2011-08-21T04:41:30","guid":{"rendered":"http:\/\/www.marcostazi.com\/blog\/?p=196"},"modified":"2011-08-23T06:48:31","modified_gmt":"2011-08-23T04:48:31","slug":"copia-taglia-e-incolla-in-vim-ed-emacs","status":"publish","type":"post","link":"https:\/\/www.marcostazi.com\/blog\/2011\/08\/21\/copia-taglia-e-incolla-in-vim-ed-emacs\/","title":{"rendered":"Copia, taglia e incolla in Vim ed Emacs"},"content":{"rendered":"<p>Gli editor testuali avanzati come <a title=\"Vim editor, home\" href=\"https:\/\/www.vim.org\/\">Vim<\/a> ed <a title=\"GNU Emacs\" href=\"https:\/\/www.gnu.org\/software\/emacs\/\">Emacs<\/a>\u00a0possono essere eseguiti, almeno nelle versioni pi\u00f9 recenti, in modalit\u00e0 grafica, sono quindi presenti icone nella toolbar che permettono di gestire le normali operazioni taglia, copia e incolla.<\/p>\n<p>In realt\u00e0 per\u00f2 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&#8217;uso del mouse e conseguentemente permette al programmatore di non staccare mai le mani dalla tastiera: questo si traduce ovviamente in una maggiore velocit\u00e0 operativa.<\/p>\n<p>Per i novizi, per\u00f2, \u00e8 difficile sfruttare queste caratteristiche, in quanto i normali shortcut come CTRL-C e CTRL-V non sono supportati.<\/p>\n<p>Vediamo quindi, nella tabella qui sotto, quali sono le corrispondenti combinazioni di tasti in Vim ed Emacs:<\/p>\n<table>\n<tbody>\n<tr>\n<td>Comando<\/td>\n<td>Standard<\/td>\n<td>Vim <a href=\"#1\"><sup>1<\/sup><\/a><\/td>\n<td>Vim, altre app. <a href=\"#2\"><sup>2<\/sup><\/a><\/td>\n<td>Emacs<\/td>\n<\/tr>\n<tr>\n<td>Taglia<\/td>\n<td>CTRL-X<\/td>\n<td>x<\/td>\n<td>&quot;+x<\/td>\n<td>CTRL-W<\/td>\n<\/tr>\n<tr>\n<td>Copia<\/td>\n<td>CTRL-C<\/td>\n<td>y<\/td>\n<td>&quot;+y<\/td>\n<td>ALT-W<\/td>\n<\/tr>\n<tr>\n<td>Incolla<\/td>\n<td>CTRL-V<\/td>\n<td>p<\/td>\n<td>&quot;+p<\/td>\n<td>CTRL-Y<\/td>\n<\/tr>\n<tr>\n<td>Seleziona<\/td>\n<td>SHIFT-frecce<\/td>\n<td>v frecce\u00a0<a href=\"#3\"><sup>3<\/sup><\/a><\/td>\n<td>&#8212;<\/td>\n<td>CTRL-spazio frecce <a href=\"#3\"><sup>3<\/sup><\/a><\/td>\n<\/tr>\n<tr>\n<td>Annulla<\/td>\n<td>CTRL-Z<\/td>\n<td>u<\/td>\n<td>&#8212;<\/td>\n<td>CTRL-X u <a href=\"#3\"><sup>3<\/sup><\/a><\/td>\n<\/tr>\n<tr>\n<td>Incolla<br>\nprecedente<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td>CTRL-Y ALT-Y <a href=\"#4\"><sup>4<\/sup><\/a><\/td>\n<\/tr>\n<tr>\n<td>Taglia nel<br>\nregistro c<\/td>\n<td>&#8212;<\/td>\n<td>&quot;cx <a href=\"#5\"><sup>5<\/sup><\/a><\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<tr>\n<td>Copia nel<br>\nregistro c<\/td>\n<td>&#8212;<\/td>\n<td>&quot;cy <a href=\"#5\"><sup>5<\/sup><\/a><\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<tr>\n<td>Incolla dal<br>\nregistro c<\/td>\n<td>&#8212;<\/td>\n<td>&quot;cp <a href=\"#5\"><sup>5<\/sup><\/a><\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a name=\"1\"><\/a>1 = In Vim, se ci si trova\u00a0nella modalit\u00e0 di inserimento testo, bisogna premere il tasto <strong>Esc<\/strong> prima di poter digitare dei comandi. Successivamente, per tornare a digitare il testo, utilizzare il comando <strong>a<\/strong> (<em>append<\/em>, per posizionare il cursore subito dopo il carattere selezionato) o il comando <strong>i<\/strong> (<em>insert<\/em>, cursore prima del carattere selezionato).<\/p>\n<p><a name=\"2\"><\/a>2 = Vim di default memorizza i dati in un blocco note diverso da quello del sistema operativo , quindi se si desidera inviare dati <strong>ad altre applicazioni<\/strong>, o incollare in Vim dati provenienti da altri programmi, bisogna utilizzare i comandi indicati (oppure le icone in modalit\u00e0 grafica). La sintassi (notare le virgolette) \u00e8 uguale a quella dei registri (v. sotto), solo che si usa un registro speciale contraddistinto dal simbolo <strong>+<\/strong>.<\/p>\n<p><a name=\"3\"><\/a>3 = In questo caso l&#8217;operazione viene eseguita tramite una <strong>sequenza<\/strong>: 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, \u00e8 presente uno spazio, ma nell&#8217;inserimento non bisogna premere la barra spaziatrice. Questo tipo di sequenze \u00e8 comune soprattutto in Emacs.<\/p>\n<p><a name=\"4\"><\/a>4 = Emacs memorizza non solo i dati dell&#8217;ultima operazione di taglio o di copia, ma anche le stringhe <strong>precedenti<\/strong>: per incollarle bisogna premere una volta sola CTRL-Y e poi pi\u00f9 volte ALT-Y, fino a raggiungere la stringa desiderata.<\/p>\n<p><a name=\"5\"><\/a>5 = Vim memorizza solo i dati dell&#8217;ultima operazione di copia o di taglio, non delle precedenti, quindi per salvare una stringa per un futuro utilizzo \u00e8 necessario metterla in un <strong>registro<\/strong>. Qui, a titolo di esempio, \u00e8 illustrata la sintassi per utilizzare il registro denominato <strong>c<\/strong>, ma esiste un registro per ognuna delle lettere dell&#8217;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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gli editor testuali avanzati come Vim ed Emacs\u00a0possono essere eseguiti, almeno nelle versioni pi\u00f9 recenti, in modalit\u00e0 grafica, sono quindi presenti icone nella toolbar che permettono di gestire le normali operazioni taglia, copia e incolla. In realt\u00e0 per\u00f2 sia Emacs che Vim sono stati concepiti per gli utenti avanzati, per questo la maggior parte delle &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.marcostazi.com\/blog\/2011\/08\/21\/copia-taglia-e-incolla-in-vim-ed-emacs\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Copia, taglia e incolla in Vim ed Emacs&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,18],"tags":[50,49,48,47],"_links":{"self":[{"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/posts\/196"}],"collection":[{"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/comments?post=196"}],"version-history":[{"count":46,"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/posts\/196\/revisions"}],"predecessor-version":[{"id":253,"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/posts\/196\/revisions\/253"}],"wp:attachment":[{"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/media?parent=196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/categories?post=196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marcostazi.com\/blog\/wp-json\/wp\/v2\/tags?post=196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}