{"id":588,"date":"2015-03-15T02:24:45","date_gmt":"2015-03-15T02:24:45","guid":{"rendered":"http:\/\/www.fabiodomingos.com\/?p=588"},"modified":"2015-03-15T02:24:45","modified_gmt":"2015-03-15T02:24:45","slug":"open-sourcebreve-introducao-ao-editor-de-texto-vim","status":"publish","type":"post","link":"https:\/\/www.fabiodomingos.com\/?p=588","title":{"rendered":"[Open Source]Breve Introdu\u00e7\u00e3o ao Editor de Texto VIM"},"content":{"rendered":"<p>Nota: Este artigo trata-se de uma adapta\u00e7\u00e3o de um\u00a0originalmente publicado por mim na<a href=\"http:\/\/www.revista-programar.info\/edicoes\/edicao-29-junho-2011\/\" target=\"_blank\"> edi\u00e7\u00e3o 29 da Revista Programar<\/a>.<\/p>\n<p><strong>Introdu\u00e7\u00e3o<\/strong><\/p>\n<p style=\"text-align: left;\">O editor de texto Vim, \u00e9 uma aplica\u00e7\u00e3o open source\u00a0dispon\u00edvel para os v\u00e1rios sistemas operativos Unix-based,<br \/>\nexistindo tamb\u00e9m alguns \u201cports\u201d para Windows, como o\u00a0caso do cygwin, bem como diversas vers\u00f5es gr\u00e1ficas.<\/p>\n<p style=\"text-align: left;\">Para\u00a0quem n\u00e3o conhece, o Cygwin \u00e9 uma esp\u00e9cie de \u201cambiente\u00a0unix\u201d e linha de comandos para o sistema operativo da\u00a0Microsoft, no entanto n\u00e3o \u00e9 poss\u00edvel atrav\u00e9s deste\u00a0\u201cambiente\u201d, correr aplica\u00e7\u00f5es criadas nativamente para\u00a0Linux, existindo uma necessidade de as recompilar.<br \/>\nO seu conjunto alargado de funcionalidades, como o\u00a0syntax-highlight, fazem com que este seja um editor de<br \/>\ntexto \u00fatil para programadores, da\u00ed a raz\u00e3o deste artigo.<\/p>\n<p style=\"text-align: left;\">Com este artigo, pretendo fazer um &#8220;tour&#8221; pelo Vim, mais\u00a0propriamente pela vers\u00e3o 7.3, n\u00e3o vou abordar todas as<br \/>\nfuncionalidades do mesmo, pois se o fizesse, talvez desse\u00a0origem a um livro. O objectivo deste artigo \u00e9 que no fim do\u00a0mesmo fiquem a saber os conceitos b\u00e1sicos para\u00a0desfrutarem do editor.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><strong>Instalar o VIM<\/strong><\/p>\n<p style=\"text-align: left;\">Em muitas distribui\u00e7\u00f5es de Linux e no Mac OS X, o Vim j\u00e1 vem instalado, no entanto certas distribui\u00e7\u00f5es como o Linux Ubuntu n\u00e3o o trazem instalado, e a instala\u00e7\u00e3o dever\u00e1 serfeita abrindo uma janela do terminal e escrevendo o seguinte comando:<\/p>\n<blockquote>\n<p style=\"text-align: left;\">$sudo apt-get install vim<\/p>\n<\/blockquote>\n<p style=\"text-align: left;\">A instala\u00e7\u00e3o em Windows, poder\u00e1 ser feita atrav\u00e9s do cygwin ou da vers\u00e3o nativa existente para\u00a0<em>download<\/em> na p\u00e1gina oficial do editor em <a href=\"http:\/\/www.vim.org\" target=\"_blank\">www.vim.org<\/a>\u00a0.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><strong>Utiliza\u00e7\u00e3o das funcionalidades de Syntax Highlight<\/strong><\/p>\n<p style=\"text-align: left;\">Uma das principais funcionalidades para programadores do VIM \u00e9 o syntax highlight, um grande aux\u00edlio que torna o c\u00f3digo bastante mais leg\u00edvel, na imagem seguinte \u00e9 possivel ver um exemplo desta funcionalidade:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-600\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim1-300x216.png\" alt=\"vim1\" width=\"300\" height=\"216\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim1-300x216.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim1.png 313w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Esta funcionalidade, poder\u00e1 ser usada abrindo um ficheiro de c\u00f3digo, com a extens\u00e3o apropriada, por exemplo, um ficheiro com o nome programa.c, ir\u00e1 ser aberto com o\u00a0<em>syntax highlight\u00a0<\/em>para C.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><strong>Como Abrir<\/strong><\/p>\n<p style=\"text-align: left;\">Se utilizar a vers\u00e3o\u00a0Windows, poder\u00e1 abri-lo como qualquer outro programa (menu iniciar ou atrav\u00e9s do execut\u00e1vel do mesmo), se utiliza cygwin, Linux ou Mac OS X, dever\u00e1 execut\u00e1-lo atrav\u00e9s do terminal, atrav\u00e9s de uma das seguintes formas:<\/p>\n<ul>\n<li style=\"text-align: left;\">Se desejar abrir um ficheiro j\u00e1 existente, escreva o seguinte comando:<\/li>\n<\/ul>\n<blockquote><p>$vim &lt;diretoria e nome do ficheiro&gt;<\/p><\/blockquote>\n<ul>\n<li>Se desejar criar um novo ficheiro, especificando o seu nome logo na abertura da aplica\u00e7\u00e3o, o comando dever\u00e1 ser o seguinte:<\/li>\n<\/ul>\n<blockquote><p>$vim &lt;diretoria e nome do ficheiro&gt;<\/p><\/blockquote>\n<ul>\n<li style=\"text-align: left;\">Para abrir o editor com um ficheiro sem especificar o nome, basta correr o seguinte comando:<\/li>\n<\/ul>\n<blockquote><p>$vim<\/p><\/blockquote>\n<p style=\"text-align: left;\">Ir\u00e1 ent\u00e3o visualizar o ecr\u00e3 inicial do VIM:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-601\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim2-300x152.png\" alt=\"vim2\" width=\"300\" height=\"152\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim2-300x152.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim2.png 455w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Se nunca trabalhou com este editor de texto, provavelmente estar\u00e1 neste momento a interrogar-se sobre como criar um novo documento. O motivo de n\u00e3o conseguir escrever nada, \u00e9 porque n\u00e3o se encontra no modo que possibilita escrever, ou seja o modo\u00a0<em>insert<\/em>.<\/p>\n<p style=\"text-align: left;\">No pr\u00f3ximo ponto, ser\u00e3o abordados os diferentes modos do VIM.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><strong>Os diferentes modos do VIM<\/strong><\/p>\n<p style=\"text-align: left;\">O VIM possui 3 modos de edi\u00e7\u00e3o, que ser\u00e3o descritos de seguida:<\/p>\n<ul>\n<li style=\"text-align: left;\"><strong>Modo Insert &#8211;\u00a0<\/strong>Permite inserir texto, sendo por isso o modo b\u00e1sico do editor de texto, por outras palavras possibilita escrever;<\/li>\n<li style=\"text-align: left;\"><strong>Modo Command &#8211;\u00a0<\/strong>Permite inserir comandos, que permitem executar as v\u00e1rias funcionalidades do editor, como guardar e formatar o texto, fazer tipos de deslocamento espec\u00edficios, etc. Para introduzir estes comandos, usa-se o teclado, por exemplo, para entrar no modo\u00a0<em>insert<\/em>, dever\u00e1 premir a tecla i , que \u00e9 a tecla que dever\u00e1 premir quando abre o VIM e quer come\u00e7ar a escrever. Se desejar voltar ao <i>command mode<\/i>, dever\u00e1 ent\u00e3o premir a tecla\u00a0<em>esc.<\/em><\/li>\n<li style=\"text-align: left;\"><strong>Last Line Mode &#8211;\u00a0<\/strong>\u00c9 um submodo do modo Command, para aceder ao mesmo, prime-se a tecla : no modo <i>Command<\/i>.<\/li>\n<\/ul>\n<p>De seguida, irei descrev\u00ea-los de uma forma mais aprofundada.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>O Modo Insert<\/strong><\/p>\n<p>Quando nos encontramos no modo\u00a0<em>insert<\/em>, ir\u00e1 aparecer essa indica\u00e7\u00e3o no rodap\u00e9 do editor, tal como se pode visualizar na imagem seguinte:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-602\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim3-300x196.png\" alt=\"vim3\" width=\"300\" height=\"196\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim3-300x196.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim3.png 382w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Este modo \u00e9 bastante f\u00e1cil de usar, as teclas das setas movem o cursor, e as de escrita permitem digitar texto. Para guardar o texto, dever\u00e1 ir ao modo <em>command\u00a0<\/em>premindo a tecla esc.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>O Modo Command<\/strong><\/p>\n<p><em><strong>1. Comandos para Mover o Cursor<\/strong><\/em><\/p>\n<p>O cursor poder\u00e1 fazer movimentos simples e m\u00faltiplos neste modo, uma das caracter\u00edsticas do VIM \u00e9 o facto de poder usar teclas de letras para al\u00e9m das setas. Este sistema tem muitos f\u00e3s, uma vez que permite movimentar o cursor sem ser necess\u00e1rio tirar os dedos do centro do teclado.<\/p>\n<p>Assim, as teclas correspondentes aos movimentos simples s\u00e3o as seguintes:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-603\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim4-300x95.png\" alt=\"vim4\" width=\"300\" height=\"95\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim4-300x95.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim4.png 402w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u00c9 tamb\u00e9m poss\u00edvel efetuar movimentos simples precedendo a tecla do movimento pretendido com o n\u00famero de espa\u00e7os que pretendemos efetuar, por exemplo, se pretender avan\u00e7ar quatro caracteres para a direita, poder\u00e1 escrever 4I em vez de premir 4 vezes a tecla I.<\/p>\n<p>Existem tamb\u00e9m outras formas \u00fateis de movimentar o cursor:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-604\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim5-300x74.png\" alt=\"vim5\" width=\"300\" height=\"74\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim5-300x74.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim5.png 432w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong><em>2. Gravar e fechar o Documento<\/em><\/strong><\/p>\n<p>Para gravar o documento e\/ou fechar o editor, os comandos a usar s\u00e3o os seguintes:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-605\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim6-300x209.png\" alt=\"vim6\" width=\"300\" height=\"209\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim6-300x209.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim6.png 367w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><em><strong>3. Edi\u00e7\u00f5es Simples<\/strong><\/em><\/p>\n<p>O VIM possui um conjunto de comandos que possibilitam efetuar algumas edi\u00e7\u00f5es simples ao documento. Alguns dos comandos mais utilizados podem ser vistos na tabela seguinte:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-606\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim7-300x278.png\" alt=\"vim7\" width=\"300\" height=\"278\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim7-300x278.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim7.png 369w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>A tecla &#8220;c&#8221; tem como fun\u00e7\u00e3o substituir texto, possuindo a vantagem de poder dizer quanto texto deseja alterar, podendo para isso ser combinada com as teclas de movimento. Por isso, na tabela seguinte ser\u00e3o apresentadas algumas das possibilidades de utiliza\u00e7\u00e3o desta tecla:<\/p>\n<p><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-607\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim8-300x91.png\" alt=\"vim8\" width=\"300\" height=\"91\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim8-300x91.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim8.png 410w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Por isso, veja a tabela referente aos movimentos e use e abuse da tecla c.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: left;\"><em><strong>4.Mover Texto<\/strong><\/em><\/p>\n<p style=\"text-align: left;\">Uma vez que o VIM guarda temporariamente num\u00a0<em>buffer<\/em> o texto eliminado, \u00e9 poss\u00edvel restaur\u00e1-lo premindo para isso a tecla &#8220;p&#8221;. Desta forma, o procedimento para mover texto \u00e9 apagar o que se pretende mover e restaurar o mesmo no local desejado premindo a tecla &#8220;p&#8221;.<\/p>\n<p style=\"text-align: left;\">Tenha em aten\u00e7\u00e3o que ap\u00f3s qualquer outra altera\u00e7\u00e3o, o\u00a0<em>buffer<\/em> \u00e9 limpo, por isso restaure sempre antes de qualquer outra altera\u00e7\u00e3o.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><em><strong>5. Copiar Texto<\/strong><\/em><\/p>\n<p style=\"text-align: left;\">A c\u00f3pia de texto neste editor \u00e9 feita atrav\u00e9s da tecla &#8220;y&#8221; seguida de uma tecla de movimento, ou da &#8220;y&#8221; para copiar toda a linha em que o cursor se encontra. Para colar utiliza-se a tecla &#8220;p&#8221;.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><em><strong>6. Repetir ou anular o comando anterior<\/strong><\/em><\/p>\n<p style=\"text-align: left;\">Se desejar efetuar o mesmo comando v\u00e1rias vezes, coloque o cursor no local onde o deseja correr e prima a tecla &#8220;.&#8221; . Assim, o comando anterior ser\u00e1 repetido. A \u00faltima a\u00e7\u00e3o poder\u00e1 ser anulada com a tecla &#8220;u&#8221;.<\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><em><strong>7. Deslocamentos no ecr\u00e3<\/strong><\/em><\/p>\n<p style=\"text-align: left;\">Existem tamb\u00e9m algumas sequ\u00eancias de teclas que pode digitar no modo\u00a0<em>command<\/em>\u00a0e que permitem deslocar (fazer\u00a0<em>scroll<\/em>) no ecr\u00e3:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-608\" src=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim9-300x98.png\" alt=\"vim9\" width=\"300\" height=\"98\" srcset=\"https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim9-300x98.png 300w, https:\/\/www.fabiodomingos.com\/wp-content\/uploads\/2015\/03\/vim9.png 315w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\">Espero ent\u00e3o que tenha gostado desta &#8220;breve introdu\u00e7\u00e3o&#8221;. D\u00favidas e sugest\u00f5es nos coment\u00e1rios. Obrigado!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nota: Este artigo trata-se de uma adapta\u00e7\u00e3o de um\u00a0originalmente publicado por mim na edi\u00e7\u00e3o 29 da Revista Programar. Introdu\u00e7\u00e3o O editor de texto Vim, \u00e9 uma aplica\u00e7\u00e3o open source\u00a0dispon\u00edvel para os v\u00e1rios sistemas operativos Unix-based, existindo tamb\u00e9m alguns \u201cports\u201d para Windows, como o\u00a0caso do cygwin, bem como diversas vers\u00f5es gr\u00e1ficas. Para\u00a0quem n\u00e3o conhece, o Cygwin &#8230; <a title=\"[Open Source]Breve Introdu\u00e7\u00e3o ao Editor de Texto VIM\" class=\"read-more\" href=\"https:\/\/www.fabiodomingos.com\/?p=588\" aria-label=\"Leia mais sobre [Open Source]Breve Introdu\u00e7\u00e3o ao Editor de Texto VIM\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":21,"footnotes":""},"categories":[30],"tags":[31],"class_list":["post-588","post","type-post","status-publish","format-standard","hentry","category-open-source","tag-vim"],"_links":{"self":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts\/588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=588"}],"version-history":[{"count":3,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts\/588\/revisions"}],"predecessor-version":[{"id":609,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=\/wp\/v2\/posts\/588\/revisions\/609"}],"wp:attachment":[{"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabiodomingos.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}