{"id":2309,"date":"2015-01-15T18:00:07","date_gmt":"2015-01-15T20:00:07","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=2309"},"modified":"2015-01-14T23:08:51","modified_gmt":"2015-01-15T01:08:51","slug":"corretor-ortografico-no-vim-guia-definitivo","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=2309","title":{"rendered":"CORRETOR ORTOGR\u00c1FICO NO VIM &#8211; GUIA DEFINITIVO"},"content":{"rendered":"<h1>INTRODU\u00c7\u00c3O<\/h1>\n<p>Este documento \u00e9 uma atualiza\u00e7\u00e3o da dica Adicionando corretor ortogr\u00e1fico em portugu\u00eas no Vim, de Guilherme Maluf, onde adiciono explica\u00e7\u00f5es mais detalhadas para tornar o texto um guia definitivo sobre o assunto.<\/p>\n<div>\n<p>Antes de tudo precisamos de um dicion\u00e1rio da l\u00edngua portuguesa. O OpenOffice possui o <em>Vero<\/em>, que \u00e9 distribu\u00eddo em em forma de extens\u00e3o.<\/p>\n<p>Voc\u00ea pode fazer o download do Vero em:<\/p>\n<ul>\n<li><a href=\"http:\/\/extensions.openoffice.org\/en\/project\/vero-brazilian-portuguese-spellchecking-dictionary-hyphenator\" target=\"_blank\" rel=\"nofollow\">http:\/\/extensions.openoffice.org\/en\/project\/vero-brazilian-portuguese-spellchecking-dictionary-hyphenator<\/a><\/li>\n<\/ul>\n<p>Ao clicar em &#8220;Download&#8221; ser\u00e1 baixado o arquivo <em>vero_pt_br_v208aoc.oxt<\/em>. Salve-o e entre na pasta de Downloads (ou onde ele foi salvo):<br \/>\n<!--more--><br \/>\n<strong>$ cd ~\/Downloads<\/strong><\/p>\n<p>Note que a extens\u00e3o oxt (OpenOffice Extension) nada mais \u00e9 que um arquivo ZIP:<\/p>\n<p><strong>$ file vero_pt_br_v208aoc.oxt <\/strong><br \/>\n<samp>vero_pt_br_v208aoc.oxt: Zip archive data, at least v2.0 to extract<\/samp><\/p>\n<p>Vamos descompact\u00e1-lo:<\/p>\n<p><strong>$ unzip vero_pt_br_v208aoc.oxt<\/strong><br \/>\n<samp>Archive: vero_pt_br_v208aoc.oxt<br \/>\ninflating: pt_BR.dic<br \/>\ninflating: README_en.TXT<br \/>\ninflating: README_hyph_pt_BR.TXT<br \/>\ninflating: README_pt_BR.TXT<br \/>\ninflating: META-INF\/manifest.xml<br \/>\ninflating: description.xml<br \/>\ninflating: dictionaries.xcu<br \/>\ninflating: hyph_pt_BR.dic<br \/>\ninflating: pt_BR.aff<\/samp><\/p>\n<p>O Vim usa arquivos de dicion\u00e1rio no formato SPL. Com base nos arquivos baixados precisaremos gerar um dicion\u00e1rio compat\u00edvel com o editor.<\/p>\n<p>No mesmo diret\u00f3rio em que voc\u00ea descompactou os arquivos acima, digite:<\/p>\n<p><strong>$ vim<\/strong><\/p>\n<p>NOTA: os arquivos necess\u00e1rios para esta opera\u00e7\u00e3o s\u00e3o o <em>pt_BR.dic<\/em> e <em>pt_BR.aff<\/em>.<\/p>\n<p>Ao digitar &#8220;vim&#8221; sem argumentos, a surgir\u00e1 a tela inicial do editor:<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/vim02.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_vim02.png\" alt=\"\" width=\"500\" height=\"275\" border=\"0\" \/><\/a><\/div>\n<p>Vamos solicitar ao editor que ele crie o dicion\u00e1rio pt_BR. Digite o seguinte comando dentro do Vim:<\/p>\n<p><strong>:mkspell pt pt_BR<\/strong><\/p>\n<p>Onde:<\/p>\n<ul>\n<li>mkspell &#8211; comando para gera\u00e7\u00e3o de dicion\u00e1rio;<\/li>\n<li>pt &#8211; nome da linguagem;<\/li>\n<li>pt_BR &#8211; prefixo dos arquivos de dicion\u00e1rio (lembram do pt_BR.dic e pt_BR.aff?).<\/li>\n<\/ul>\n<p>Ao executar o comando algumas mensagens de erro surgir\u00e3o:<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/vim01.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_vim01.png\" alt=\"\" width=\"500\" height=\"261\" border=\"0\" \/><\/a><\/div>\n<p>Pressione ENTER (n\u00e3o use &#8220;q&#8221;) at\u00e9 as mensagens de erro cessarem.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/vim04.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_vim04.png\" alt=\"\" width=\"500\" height=\"261\" border=\"0\" \/><\/a><\/div>\n<p>Ent\u00e3o o vim comecar\u00e1 a gerar o dicion\u00e1rio. Continue pressionando ENTER a cada pausa de tela at\u00e9 que o processamento esteja completo. Ao final do processamento voc\u00ea cair\u00e1 na tela preta do Vim, que \u00e9 a de novo documento. Digite <strong>:q<\/strong> para sair do editor.<\/p>\n<p>Note que foi criado um novo arquivo de extens\u00e3o .spl no diret\u00f3rio corrente:<\/p>\n<p><strong>$ ls *spl<\/strong><br \/>\n<samp>pt.utf-8.spl<\/samp><\/p>\n<p>Onde:<\/p>\n<ul>\n<li>pt &#8211; nome que escolhemos para a linguagem;<\/li>\n<li>utf-8 &#8211; charset utilizado pelo seu SO. Pode variar para iso8859-1 por exemplo;<\/li>\n<li>spl &#8211; extens\u00e3o de arquivo de dicion\u00e1rio do Vim.<\/li>\n<\/ul>\n<p>Caso n\u00e3o exista, crie o diret\u00f3rio que armazenar\u00e1 os dicion\u00e1rios no Vim:<\/p>\n<p><strong>$ mkdir ~\/.vim\/spell<\/strong><\/p>\n<p>Copie o dicion\u00e1rio:<\/p>\n<p><strong>$ cp pt.utf-8.spl ~\/.vim\/spell\/<\/strong><\/p>\n<p>Agora vamos editar o arquivo de configura\u00e7\u00e3o do Vim a fim de habilitar o uso de corretor ortogr\u00e1fico.<\/p>\n<p><strong>$ vim ~\/.vimrc<\/strong><\/p>\n<p>Adicione a seguinte linha ao final do arquivo (ok, em qualquer lugar do arquivo):<\/p>\n<div class=\"codigo\">set spell spelllang=pt<\/div>\n<p>Onde &#8220;pt&#8221; \u00e9 o nome que escolhemos para a linguagem no in\u00edcio do tutorial.<\/p>\n<\/div>\n<h1>UTILIZANDO O CORRETOR E PERSONALIZANDO AS CORES<\/h1>\n<p>&nbsp;<\/p>\n<div>\n<h1>UTILIZANDO O CORRETOR<\/h1>\n<p>Em modo visual temos os seguintes comandos:<\/p>\n<ul>\n<li>]s vai para a pr\u00f3xima palavra;<\/li>\n<li>[s vai para a palavra anterior;<\/li>\n<li>z= mostra a lista de sugest\u00f5es para a palavra;<\/li>\n<li>zg adiciona a palavra sob o cursor no dicion\u00e1rio, assim ela n\u00e3o ser\u00e1 mais marcada como errada;<\/li>\n<li>zug desfaz a \u00faltima palavra adicionada;<\/li>\n<li>zw remove a palavra sob o cursor do dicion\u00e1rio, assim ela ser\u00e1 marcada como errada;<\/li>\n<li>zuw desfaz a \u00faltima palavra removida.<\/li>\n<\/ul>\n<p>Particularmente s\u00f3 uso <strong>]s<\/strong> e <strong>zg<\/strong>.<\/p>\n<h1>PERSONALISANDO AS CORES<\/h1>\n<p>Se voc\u00ea n\u00e3o gostou da forma como o Vim sinaliza as palavras erradas, \u00e9 poss\u00edvel personalizar as cores.<\/p>\n<p>Os dois principais tipos de highlight s\u00e3o:<\/p>\n<ul>\n<li>SpellCap &#8211; palavras que est\u00e3o em caixa baixa ap\u00f3s alguma pontua\u00e7\u00e3o. O corretor indica que neste caso o correto \u00e9 usar a primeira letra em caixa alta. Por padr\u00e3o o Vim marca essas palavras com fundo azul.<\/li>\n<li>SpellBad &#8211; palavras que o corretor considera incorretas. Por padr\u00e3o o Vim marca essas palavras com fundo vermelho.<\/li>\n<\/ul>\n<p>Existem tr\u00eas tipos de terminal onde o Vim pode ser executado:<\/p>\n<ul>\n<li>term &#8211; terminal sem cores;<\/li>\n<li>cterm &#8211; terminal com cores (o padr\u00e3o utilizado quando estamos usando <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a> com um gerenciador de janelas);<\/li>\n<li>gui &#8211; provavelmente a interface do GVim, estou chutando.<\/li>\n<\/ul>\n<p>No meu caso vou personalizar as cores do <em>cterm<\/em>, o mesmo deve se aplicar \u00e0 maioria dos que est\u00e3o acompanhando o tutorial.<\/p>\n<p>Dentro do Vim em modo visual, digitar o seguinte comando:<\/p>\n<p><strong>:highlight SpellCap ctermfg=Gray ctermbg=Blue<\/strong><\/p>\n<p>Onde:<\/p>\n<ul>\n<li>highlight &#8211; comando para setar configura\u00e7\u00f5es de highlight em geral;<\/li>\n<li>SpellCap &#8211; o tipo de highlight a ser configurado;<\/li>\n<li>ctermfg &#8211; Cor do texto (cterm foreground);<\/li>\n<li>ctermbg &#8211; Cor de fundo (cterm background).<\/li>\n<\/ul>\n<p>Usei cinza (Gray) para cor do texto com fundo azul (Blue).<\/p>\n<p>E agora a configura\u00e7\u00e3o para as palavras erradas:<\/p>\n<p><strong>:highlight SpellBad ctermfg=Gray ctermbg=DarkRed<\/strong><\/p>\n<p>Usei cinza (Gray) para cor do texto com fundo vermelho escuro (DarkRed).<\/p>\n<p>Para tornar as configura\u00e7\u00f5es permanentes, adicione as seguintes linhas ao teu ~\/.vimrc:<\/p>\n<div class=\"codigo\">hi SpellCap ctermfg=Gray ctermbg=Blue<br \/>\nhi SpellBad ctermfg=Gray ctermbg=DarkRed<\/div>\n<p>NOTA: Use &#8220;hi&#8221; ao inv\u00e9s de &#8220;highlight&#8221; s\u00f3 para mostrar que hi \u00e9 um alias para highlight. S\u00e3o a mesma coisa.<\/p>\n<p>Segue a lista de cores dispon\u00edveis para uso no Vim:<\/p>\n<ul>\n<li>Black<\/li>\n<li>DarkBlue<\/li>\n<li>DarkGreen<\/li>\n<li>DarkCyan<\/li>\n<li>DarkRed<\/li>\n<li>DarkMagenta<\/li>\n<li>Brown, DarkYellow<\/li>\n<li>LightGray, LightGrey, Gray, Grey<\/li>\n<li>DarkGray, DarkGrey<\/li>\n<li>Blue, LightBlue<\/li>\n<li>Green, LightGreen<\/li>\n<li>Cyan, LightCyan<\/li>\n<li>Red, LightRed<\/li>\n<li>Magenta, LightMagenta<\/li>\n<li>Yellow, LightYellow<\/li>\n<li>White<\/li>\n<\/ul>\n<p>Para desabilitar o corretor ortogr\u00e1fico durante a edi\u00e7\u00e3o do texto:<\/p>\n<p><strong>:set nospell<\/strong><\/p>\n<p>E para habilitar novamente:<\/p>\n<p><strong>:set spell spelllang=pt<\/strong><\/p>\n<p>NOTA: Se voc\u00ea der um &#8220;ls ~\/.vim\/spell&#8221; vai notar a exist\u00eancia de dois novos arquivos:<\/p>\n<ul>\n<li>pt.utf-8.add &#8211; lista de palavras em text\/plain que voc\u00ea adicionou ao dicion\u00e1rio com o comando &#8220;zg&#8221;;<\/li>\n<li>pt.utf-8.add.spl &#8211; lista de palavras acima em formato bin\u00e1rio, usado pelo Vim on-the-fly.<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>INTRODU\u00c7\u00c3O Este documento \u00e9 uma atualiza\u00e7\u00e3o da dica Adicionando corretor ortogr\u00e1fico em portugu\u00eas no Vim, de Guilherme Maluf, onde adiciono explica\u00e7\u00f5es mais detalhadas para tornar o texto um guia definitivo sobre o assunto. Antes de tudo precisamos de um dicion\u00e1rio da l\u00edngua portuguesa. O OpenOffice possui o Vero, que \u00e9 distribu\u00eddo em em forma de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[730,1,256,42,51,68,548],"tags":[818,821,298,361,819,820],"class_list":["post-2309","post","type-post","status-publish","format-standard","hentry","category-clusterweb","category-viazap","category-desktop","category-leitura-recomendada","category-linux-linuxrs","category-redes-2","category-ubuntu-2","tag-corretor","tag-definitivo","tag-guia","tag-no","tag-ortografico","tag-vim"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2309"}],"version-history":[{"count":2,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2309\/revisions"}],"predecessor-version":[{"id":2311,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2309\/revisions\/2311"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}