close

Vim

Ir para a navegação Ir para a pesquisa
vim
Vim -- Vi melhorado
Vim.png
Gvim, uma das implementações gráficas do Vim.
Informações gerais
tipo de programa editor de código fonte
desenvolvedor Bram Moolenaar e outros
lançamento inicial 2 de novembro de 1991
LicençaCharityware com Licença Vim ( compatível com GNU )
Informação técnica
Programado em
  • C
  • vim-script
Versões
Última versão estável 9.0 ( informações ) (28 de junho de 2022 (3 meses e 19 dias))
Links

Vim (do inglês Vi IMproved ) é uma versão melhorada do editor de texto Vi , presente em todos os sistemas UNIX .

Seu autor, Bram Moolenaar , apresentou a primeira versão em 1991 , e desde então passou por muitas melhorias. A principal característica do Vim e do Vi é que eles possuem modos diferentes que você alterna entre para realizar certas operações, o que os diferencia da maioria dos editores comuns, que possuem apenas um modo no qual os comandos são inseridos usando combinações de teclas ou interfaces gráficas .

Vi Melhorado

O Vim, como seu predecessor Vi, é usado a partir de um Terminal em modo texto . É totalmente controlado pelo teclado. Isso ocorre em parte porque o Vi foi desenvolvido em meados da década de 1970, quando os terminais se comunicavam com um computador host por uma conexão serial , que não era muito rápida (20 Kbps). As limitações dos terminais da época deram origem ao conceito de diferentes maneiras, uma ideia que tem sido muito lucrativa desde então. O Vim é quase 100% compatível com o Vi, [ 1 ] ​[ 2 ]​ embora tenha muitas melhorias e até tenha versões com interface gráfica e menus que podem ser operados via mouse (gvim ou kvim), além de um versão, evim que se comporta como um editor sem modos diferentes.

Existem versões do Vim disponíveis para muitos sistemas operacionais, e ele pode ser encontrado em quase qualquer sistema GNU/Linux e em todos os sistemas * BSD , onde ele pode ser executado via comando vi , que invoca o Vim por meio de um link simbólico ou um pseudônimo . Quando o vim é iniciado, ele inicia no modo de comando e exibe a versão na tela.

Evolução do Vim

Image
Figura 1: Captura de tela do gVim , uma das implementações do Vim , editando este mesmo artigo e o emacs simultaneamente em duas janelas diferentes.

Quando Bram Moolenar comprou um computador Amiga no final da década de 1980, ele queria continuar usando o editor Unix ao qual estava acostumado, mas os clones Vi disponíveis para o Amiga não o atraíam. Então, em 1988, ele começou com o clone Stevie 1.0 do Vi como base para começar a desenvolver o Vim. A princípio chamava-se Vi IMitation (imitação do Vi), pois a princípio seu principal objetivo era emular as funcionalidades que o Vi possuía em seu novo sistema. Em 1991, a versão 1.14 apareceu no "Fred Fish disk #591", uma coleção de software livre para o Amiga. [ 3 ] A versão 1.22 foi a primeira a aparecer com versões para Unix e MS-DOS . Por essa altura a sigla que lhe deu o nome já tinha mudado para Vi IMproved .

Image
Figura 2: Vim com os seguintes recursos: numeração de linhas, Unicode, realce de sintaxe e dobra de texto.

Nos anos seguintes, o Vim passou por grandes melhorias. Um passo importante foi dado com a incorporação do Windows na versão 3.0 (1994) (Figura 1). Com o Vi você pode ter vários arquivos abertos na mesma sessão, mas apenas um pode ser visualizado por vez; As janelas do Vim permitem que você as visualize simultaneamente. Desde a versão 4.0 (1996) está disponível uma interface gráfica de usuário (GUI), iniciada por Robert Webb. Desde a versão 5.0 (1998) o Vim tem realce de sintaxe (Figura 2).

Image
Figura 3: Novos recursos no Vim 7: verificação ortográfica e preenchimento automático de texto.

Principais funcionalidades

  • Verificador ortográfico integrado
  • Completador automático de texto
  • navegação por abas
  • Várias janelas, que dividem a área de edição horizontal ou verticalmente.
  • Realce de sintaxe dependente da programação ou linguagem de marcação usada
  • Comandos de desfazer e refazer
  • Compreensão de mais de 200 sintaxes diferentes
  • Linguagem de script para extensões de programa
  • Conclusão de comandos, palavras e nomes de arquivos
  • Compactação e descompactação de arquivos, o que possibilita editar arquivos compactados
  • Reconhecimento de formatos de arquivo e conversão entre eles.
  • Histórico de ordens executadas
  • Gravação e reprodução de macro
  • Salvando configurações entre sessões
  • Dobragem de código automática e manual
  • Interface gráfica opcional
  • Altamente configurável e personalizável
  • Quase 100% compatível com o vi, mas sem muitas de suas falhas

Ajuda do Vim

O Vim tem uma excelente documentação , obedecendo à máxima Um recurso não documentado é um recurso inútil . A documentação, em formato de texto, é muito extensa e de fácil compreensão. O usuário acessa através de uma pesquisa a descrição de diversas funcionalidades que podem solucionar seu problema. Através do destaque da sintaxe da ajuda do próprio Vim, as palavras-chave são destacadas (Figura 3).

Através de combinações de teclas executadas quando o cursor está sobre uma palavra-chave, você pode navegar pela ajuda, voltando se necessário. Na versão gráfica você também pode usar o mouse para esta finalidade. A ordem :helpgrepé importante, pois permite ao usuário pesquisar uma palavra nos textos de ajuda, sem que seja necessário que seja uma palavra-chave (Figura 4). A ajuda é complementada por uma versão HTML disponível para consulta na Internet e uma extensa lista de perguntas frequentes ( FAQ ).

Vantagens para programadores

O Vim é altamente personalizável e extensível, o que o torna muito atraente para usuários que exigem muito controle e flexibilidade na edição de texto. [ 4 ]​ A entrada de texto é facilitada com vários recursos projetados para aumentar a eficiência do teclado. Os usuários podem executar comandos complexos, como mapeamento de teclas, que podem ser personalizados e estendidos. O recurso de gravação permite a criação de macros para automatizar sequências de teclas e chamar funções internas ou definidas pelo usuário. "Atalhos", semelhantes a macros e mapeamentos, facilitam a expansão de strings curtas em longas e também podem ser usados ​​para corrigir erros. O Vim também possui um modo fácil para usuários que procuram um editor simples. [ 5 ] Existem muitos plugins disponíveis [ 6 ] que adicionam ou estendem funcionalidades como verificação de erros de sintaxe e semântica , integração com Git , cores de exibição em CSS . Esses scripts complexos geralmente são escritos na linguagem interna "vimscript" (também conhecido como VimL), [ 7 ] mas também podem ser escritos em outras linguagens.

O Vim é um editor feito por programadores para programadores. Para facilitar a programação, o Vim possui um modo "editar, compilar, corrigir". Da mesma forma que os ambientes de desenvolvimento integrados , você pode editar o código-fonte , bem como chamar um compilador externo e interpretar seus resultados. Se houver erros de compilação, eles serão exibidos em uma janela. As mensagens de erro direcionam o usuário para a área onde foram encontradas para que possam ser corrigidas. Em seguida, ele inicia o ciclo "editar, compilar, corrigir" novamente e, se necessário, corrigir novos bugs. O trabalho do programador também é facilitado pelo realce de sintaxe e funcionalidade de dobra de código (consulte ':help quickfix' ).

Comparação de arquivos

Comparar duas (ou mais) versões de um arquivo é uma tarefa comum para alguns usuários. O Vim oferece uma solução simples, as duas versões diferentes do arquivo são exibidas em duas janelas adjacentes nas quais as diferenças são destacadas (Figura 5). Desta forma você pode ver as diferenças intercaladas nas versões coloridas. Por exemplo, as exclusões aparecem em vermelho e as novas inserções em roxo.

Existem comandos que permitem posicionar o cursor nas diferenças seguintes e anteriores ([c e ]c), bem como despejar essas diferenças no outro arquivo (do e dp).

Linguagem interpretada do Vim

O Vim possui uma linguagem interpretada , ou script, para programar novos recursos, através dos quais você pode automatizar determinadas operações complexas demais para serem feitas com uma macro . Os scripts podem ser lidos e interpretados usando o comando :source.

A linguagem é chamada vimscript ou VimL ) [ 8 ] ​[ 9 ]

As macros do Vim podem conter um script da maneira normal, mas também podem invocar comandos externos ou funções escritas em vimscript para tarefas mais complexas. Quase todas as extensões (plugins) para as funções principais do Vim são escritas em vimscript, mas também podem usar outras linguagens como Perl , [ 10 ] ​Python , [ 11 ] ​Lua , [ 12 ] ​Ruby , [ 13 ] Tcl , [ 14 ]​ ou Raquete . [ 15 ]

Essas extensões podem ser instaladas manualmente ou por meio de um gerenciador de extensões como Vundle, Pathogen ou Vim-Plug.

Os arquivos Vimscript são salvos como texto simples, semelhante a qualquer outro código, e a extensão geralmente é .vim. Uma exceção a isso é o arquivo de configuração do Vim que tem a extensão .vimrc.

Exemplo

" Este é o programa Hello World no script Vim. 
echo "Hello, world!" 
" Este é um loop while simples no script Vim. 
let  i = 1 
while  i  <  5 
 echo "count is"  i 
 let  i  += 1 
endwhile 
unlet i

Modos

O Vim é um editor modal , o que significa que você pode trabalhar em diferentes modos para realizar uma determinada tarefa. Para ver em que modo o Vim está, você deve ter a opção ativada showmode. Os seis modos do Vim são descritos abaixo. [ 16 ] Os três primeiros são os modos vi originais. Os cinco modos adicionais não devem ser entendidos separadamente, mas sim em combinação com o modo base. Veja também a ajuda do Vim sobre isso: ':help vim-modes' .

Modo de comando

O Vim inicia no modo de comando, também conhecido como modo normal. Neste modo, você pode usar combinações de teclas para, por exemplo, copiar linhas e trabalhar na formatação de texto. Este é o modo central , do qual você alterna para os outros modos. [ 16 ]​ Se você não sabe o que está fazendo, pressionar a tecla Escape duas vezes sempre pode retornar ao modo normal. Se você já estava no modo normal e as configurações do Vim e do terminal permitem, o Vim emite um bipe. [ 17 ]

Modo de inserção

No modo de inserção quando as teclas são pressionadas o texto é editado como em outros editores. Você pode alternar do modo de comando para o modo de inserção pressionando a tecla i . Existe uma vasta gama de comandos para mudar para o modo de inserção, que diferem substancialmente, pois permitem, por exemplo, editar no final da linha, num ponto específico do texto, editar eliminando uma palavra, entre muitos outros. [ 18 ] Um usuário experiente pode tirar grande proveito da existência dessa variedade de comandos.

No modo de inserção, todas as teclas possuem alguma função além da mera inserção, que são acionadas pressionando simultaneamente a tecla Control ou a tecla Shift . A tecla Esc é muito importante no modo de inserção, pois permite alternar do modo de inserção para o modo de comando.

Alternar para o modo de comando para executar certas tarefas aumenta muito sua eficiência de edição e você pode aproveitar todo o poder do Vim.

Modo de linha de comando

Image
Vim versão 7.4.1689 rodando no GNU Linux Ubuntu 16.04

Este modo é acessado pressionando a tecla de dois pontos : . Após os dois pontos, comandos complexos podem ser inseridos, como pesquisar e substituir por expressões regulares . Ao pressionar a tecla Esc, você pode retornar ao modo de comando. As buscas podem ser realizadas com o comando / (forward) e ? (para trás). As linhas também podem ser filtradas usando ! . [ 19 ]

Modo visual

Este modo é uma melhoria em relação ao vi. Por meio de certas combinações de teclas em combinação com as teclas de movimento do cursor, uma área de texto pode ser marcada, seja um grupo de linhas ou um bloco. Depois de marcar o texto, você pode usar os comandos do modo de comando para manipulá-lo. As operações que podem ser realizadas neste modo são mais simples do que as do modo de comando. [ 20 ]

Modo de seleção

Este modo começa como o modo visual, pois você deve selecionar um bloco de texto. Após a seleção, você pode alternar para o modo de seleção usando Control-G . Uma vez no modo, se uma tecla imprimível for pressionada, o texto selecionado é excluído, o modo de seleção termina e o símbolo correspondente à tecla pressionada aparece. A seleção pode ser estendida pressionando as teclas shift e seta, o comportamento usual em programas do Microsoft Windows . Este modo pode ser encerrado pressionando a tecla Escape. [ 21 ]

Modo Ex

Este modo é semelhante ao modo de linha de comando, com a diferença de que após a execução de um comando, ele não retorna ao modo de comando. Você entra neste modo pressionando Q e terminando com vi . Neste modo o Vim imita o ex editor UNIX , que manipulava o texto linha por linha devido às limitações da época, ao invés de editar a página inteira. [ 22 ]

gVim

Image
Captura de tela do gVim , uma das implementações do Vim , editando um artigo da Wikipedia.

gVim é uma versão gráfica do editor de texto Vim . gVim trabalha com as bibliotecas gtk . Mantém as funcionalidades do Vim, e adiciona menus e ambiente gráfico (funciona fora do console / terminal ).

Sua principal vantagem, para novos usuários , os menus suspensos implicam em uma curva de aprendizado um pouco menos acentuada. Sua principal desvantagem é que não é instalado por padrão em todos os sistemas (por exemplo, não é em servidores sem ambiente gráfico ).

Sistemas operacionais

Uma virtude do Vim é que ele pode ser executado em muitos sistemas operacionais . Isso é importante para usuários como administradores de sistema que precisam trabalhar em muitas plataformas diferentes. Ele pode ser executado nos seguintes sistemas operacionais: AmigaOS , Atari MiNT , BeOS , DOS , GNU/Linux , Mac OS , NextStep , OS/2 , OSF , RISC OS , IRIX , Unix (muitas variedades, como BSD , AIX e HP -UX ), VMS e Windows 3.x/95/98/ME/2000/NT/XP.

Prós e contras

Críticas

As críticas se aplicam tanto ao Vi quanto ao Vim, pois são baseados no mesmo conceito e seus modos de operação são completamente diferentes da maioria dos editores convencionais atuais. Acima de tudo, dizem respeito à separação das operações em diferentes modos e à necessidade de aprender inúmeras combinações de teclas, sem as quais não é possível trabalhar com eficiência. Atualmente, a falta de uso do mouse como complemento extra às combinações de teclas é considerada um anacronismo , pois pode ocasionar frustração do usuário . Somente após um aprendizado prolongado é possível aumentar a produtividade.

Vantagens

Image
Papel de parede da área de trabalho com o logotipo do Vim.

A maioria dos usuários que usam o Vim dizem que este editor aumenta sua produtividade em comparação com editores mais simples, uma vez que a curva de aprendizado foi superada. [ 23 ] As combinações de teclas podem ser memorizadas usando métodos mnemônicos , pois estão relacionadas a palavras em inglês . A complexidade intrínseca de aprender as instruções é recompensada pela melhoria na eficiência. Usuários experientes podem, usando algumas combinações de teclas, copiar texto, formatá-lo ou organizá-lo de muitas maneiras diferentes, o que só pode ser feito na maioria dos editores por meio de operações consideravelmente mais complexas. É preciso apenas um pouco de experiência para perceber que as combinações de comandos que permitem a edição de texto complexa são facilitadas com o Vim. Por outro lado, as novas versões permitem usar o mouse e incorporar menus gráficos, o que facilita o trabalho com o Vim de maneira semelhante a outros editores. Geralmente é instalado como um editor básico devido ao seu pequeno tamanho e velocidade em plataformas baseadas em UNIX com recursos limitados. [ 24 ]

Prêmios

Vim foi o vencedor do Linux Journal Readers ' Choice Awards de Editor de Texto Favorito de 2001 a 2005 e ganhou o Slashdot Bernie Award de Melhor Editor de Texto de Código Aberto , bem como o Linuxworld Editors' Choice Award de 1999 . [ 1 ]

Licença

O Vim é distribuído sob uma licença Charityware compatível com a GNU General Public License . e por sua sigla em inglês GPL (General Public License). Isso significa que o Vim cumpre as mesmas condições, mas incentiva os usuários a fazer doações para crianças órfãs em Uganda por meio da organização ICCF Holland . [ 25 ]

Desenvolvimento e comunidade

O Vim é desenvolvido por Bram Moolenaar e muitos voluntários. A página de ajuda do Vim [ 26 ]​ para a versão atual menciona mais de 50 contribuidores. Além disso, há um grande número de pessoas que ajudaram, não apenas no desenvolvimento do software, mas também na portabilidade para outros sistemas operacionais, testando novas versões, relatando bugs , escrevendo documentação e traduzindo o sistema de ajuda. Eles também respondem às perguntas dos usuários, adaptando o Vim a outros projetos e muito mais.

Todos os usuários podem contribuir fazendo scripts [ 27 ]​ ou dando conselhos. [ 28 ]​ Existe uma lista de discussão muito ativa , útil tanto para usuários novos quanto para experientes, com respostas prontas e competentes.

Influência em outros programas

  • qutebrowser (navegador da Web que é operado por teclado).
  • VNote (Aplicativo para tomar notas).
  • Kate (Tem um modo para editar no modo VI)
  • vimium (extensão do Chrome para usar atalhos no estilo VIM)
  • ranger (gerenciador de arquivos no estilo VIM)
  • Geany (Tem um modo de atalho semelhante ao VIM)
  • vit (interface TaskWarrior com acessos de estilo VIM)
    Configurando o Kate para usá-lo como Vi/VIM

Diferenças do editor Vi

O Vim adiciona funcionalidades muito importantes em relação ao antigo editor Vi, algumas dessas melhorias são: [ 29 ]

  • A capacidade de desfazer várias vezes consecutivas.
  • Permite trabalhar com mais de uma janela e arquivo ao mesmo tempo.
  • As setas do teclado podem ser usadas durante o modo Insert.
  • É capaz de gravar comandos (macros).
  • O modo visual permite uma seleção de texto fácil e poderosa.
  • Você pode trabalhar convenientemente com texto entre aspas, parênteses, marcação html, etc.
  • Sistema de ajuda integrado.
  • Histórico de comandos.
  • expansão do comando.
  • Deslocamento horizontal

Ovo de Páscoa

Image
Ovo de Páscoa no editor de texto Vim.

O editor de texto Vim contém pelo menos um easter egg em homenagem ao Guia do Mochileiro das Galáxias, do escritor Douglas Adams . O comando :help 42produz o texto:

« What is the meaning of life, the universe and everything? 42. Douglas Adams, the only person who knew what this question really was about is now dead, unfortunately. So now you might wonder what the meaning of death is...»

¿Cuál es el sentido de la vida, el universo y todo? 42. Douglas Adams, la única persona que sabía de qué iba esta pregunta, ahora está muerta, desafortunadamente. Así que ahora te podrías preguntar cuál es el sentido de la muerte...») [ 30 ]

Referências

  1. a b Moolenaar, Bram . Vim - VI Melhorado . Recuperado em 31 de outubro de 2012 . 
  2. Moolenar, Bram. "A história contínua de Vim" . Moolenar.net (em inglês) . Recuperado em 22 de agosto de 2014 . “Ainda há uma série de pequenas incompatibilidades a serem resolvidas - você pode chamar esses bugs. O trabalho continua, mas é muito provável que o Vim já contenha menos bugs para comandos do Vi do que o próprio Vi. » 
  3. "Histórico do Vim - Datas de lançamento das versões do usuário e versões do desenvolvedor" . vmunix . com . 29 de janeiro de 2001. Arquivado a partir do original em 24 de julho de 2011 . Recuperado em 30 de janeiro de 2013 . 
  4. Melendez, Steven. "Por que o Vim, um editor de texto dos anos 80, ainda é a UI de escolha para usuários avançados" . FastCompany . Recuperado em 13 de maio de 2020 .  
  5. ^ "Dicas: Tornando o Vim fácil" . linux . com . 10 de abril de 2007 . Recuperado em 6 de maio de 2020 .  
  6. "Vim Incrível" . vimawesome.com (em inglês) . Recuperado em 13 de maio de 2020 . 
  7. ^ "Documentação do Vim: usr_41" . vimhelp.org .  
  8. Klein, Benjamin. «The VimL Primer: Edite como um profissional com plug-ins e scripts do Vim por Benjamin Klein | A estante pragmática» . Recuperado em 13 de maio de 2020 .  
  9. ^ "Documentação do Vim: usr_41" . vimhelp.org .  
  10. Verdoolaege, Sven; Gerassimof, Matt. "Documentação do Vim: if_perl" . Recuperado em 13 de maio de 2020 .  
  11. MOURA, Paulo. "Documentação do Vim: if_pyth" . Recuperado em 13 de maio de 2020 .  
  12. Carvalho, Luís. "Documentação do Vim: if_lua" . Recuperado em 13 de maio de 2020 .  
  13. Maeda, Shugo. "Documentação do Vim: if_ruby" . Recuperado em 13 de maio de 2020 .  
  14. Wilken, Ingo. "Documentação do Vim: if_tcl" . Recuperado em 13 de maio de 2020 .  
  15. Khorev, Sergey. "Documentação do Vim: if_mzsch" . Recuperado em 13 de maio de 2020 .  
  16. ^ a b Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: digite" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  17. Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: modo normal" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  18. Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: modo de inserção" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  19. Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: linha de comando" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  20. Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: Modo Visual" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  21. Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: modo de seleção" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  22. Moolenaar, Bram (8 de dezembro de 2010). "Documentação do Vim: Ex-mode" . vimdoc.sourceforge.net . Recuperado em 13 de maio de 2020 .  
  23. "Por que eu uso o Vim - Blog de Pascal Precht" . Por que uso o Blog do Vim-Pascal Precht . Recuperado em 4 de outubro de 2019 . 
  24. Beyer, Casper (11 de outubro de 2017). "Por que eu ainda uso o Vim" . Médio (em inglês) . Recuperado em 4 de outubro de 2019 . 
  25. ^ "ICCF Holland - ajudando crianças em Uganda" . Arquivado do original em 21 de setembro de 2019 . Recuperado em 30 de janeiro de 2013 . 
  26. «:ajuda créditos ' » . Recuperado em 30 de janeiro de 2013 . 
  27. Página Oficial de Scripts do Vim
  28. Dicas do Vim
  29. "Documento online do Vim: FAQ do Vim" . vimdoc.sourceforge.net . Recuperado em 4 de outubro de 2019 . 
  30. kcbhiw (24 de julho de 2001). Resposta do Vim (Vi Melhorado) ao Sentido da Vida . O Arquivo de Ovos de Páscoa . Recuperado em 10 de maio de 2020 .  

Bibliografia

  • Oualline, Steve (2001). Vi Melhorado – Vim . Indianápolis: New Riders Publishing. ISBN  0-7357-1001-5 . 
  • Wobst, Reinhard (2004). vim ge-packt (em alemão) . Bonn: mitp-Verlag. ISBN  3-8266-1425-9 . 

Links externos

Lista de discussão

<[email protected]> – veja também: Instruções para a lista de discussão

Links gerais

Documentação