Novidades na versão 7.3 do Vim
Publicado em Developer
editor vim
Aproveitando que a turma está comentando bastante ultimamente do editor que alguns meses atrás era feio, tosco, tinha chulé e frieira mas agora é cool e sexy, o Vim, o qual eu uso faz trocentos anos até para desencravar unha (ahá! isso eu não conto como faz), decidi fazer esse post para numerar algumas das novidades que estão vindo por aí na versão 7.3 (ainda em beta), algumas bem interessantes.
Essa versão pode ser encontrada em pacotes unstable da sua distro preferida, no FTP do unstable do projeto (ftp://ftp.vim.org/pub/vim/unstable/) ou até mais recente usando o Mercurial:
hg clone https://vim.googlecode.com/hg/ vim cd vim hg update vim73
Depois disso é o tradicional ./configure (que pode ter trocentas opções), make e make install. Para quem quer automatizar um pouco a coisa, eu tenho um script, o Viminstall, que encontra a versão mais recente no FTP, faz download, busca e aplica os patches e instala no diretório ~/apps/vim. Hoje aproveitei o embalo e atualizei com a opção de justamente buscar a versão unstable, bastando para isso executar o script com a opção -u.
Depois de instalado, vamos ás novidades.
Undo persistente
Ganhamos a opção de guardar nossos undos! Para isso, é só ativar com
:set undofile
Isso fará com que arquivos de undo sejam gravados no diretório corrente, e manterá o seu histórico de undo's mesmo que você feche o arquivo! Lógico que o diretório corrente pode ficar uma bagunça, ainda mais se for de algum projeto que estamos utilizando controle de versão, então para isso existe a opção de indicar onde os arquivos de undo serão gravados:
:set undodir=/tmp
Importante lembrar que algumas distros como o Ubuntu limpam o /tmp, para onde indiquei os arquivos na opção acima, toda vez que é reiniciada. Então cuidado onde você indica para gravar os arquivos, se pretende ter undo's perpétuos! Para a turma que gosta de fazer scripts, existe uma função que retorna o nome do arquivo de undo cujo nome é fornecido como argumento. Para ver o nome do arquivo de undo do buffer corrente, é só utilizar:
:echo undofile(expand("%"))
Existe também a função nova undotree que retorna informações sobre o estado corrente da estrutura de undo.
Criptografia mais forte
Ganhamos suporte para Blowfish! O método que existia até agora utiliza o método do PkZip, mas agora temos um porreta de seguro. Para habilitar, basta usar
:set cryptmethod=1
O valor 1 se refere à Blowfish, e 0 para o PkZip. Vale lembrar que depois de habilitar esse recurso devemos utilizar :X para especificar a senha do arquivo e :w para gravar já criptografado (ou :x para gravar e sair).
Números relativos de linhas
Essa opção é uma das minhas preferidas. Sabem quando queremos selecionar algumas linhas com algum comando de movimentação e contamos as danadas no "olhômetro"? Pois bem, depois de utilizar
set relativenumber
vamos ter algo parecido com isso, levando em conta que o meu cursor está na linha escrito "da":
4 isso 3 é 2 um 1 teste 0 da 1 nova 2 versão 3 do 4 vim
Olha que legal! Ele mostra os números das linhas relativas acima e abaixo da posição do cursor. Se eu quiser deslocar (ou fazer qualquer outro tipo de comando de movimentação com seleção etc) para a linha onde está a palavra "versão", por exemplo, posso ver claramente que vou utilizar um 2j, já que ele me mostra que está duas linhas abaixo.
Destaque de colunas
Podemos destacar determinadas colunas no texto, utilizando a opção
:set colorcolumn=<lista>
Para especificarmos as colunas que queremos destacar, podemos utilizar em <lista>, que é uma string separada por vírgulas, as seguintes opções:
:set colorcolumn=2,3,4
Isso vai destacar as colunas 2, 3 e 4 do texto. Ou
:set colorcolumn=+1,+2,+3
Isso vai destacar as colunas 1, 2 e 3 relativas ao textwidth definido, ou seja, as que "estouram" a margem do textwidth. Podem ser utilizados os sinais de + e i.
Importante: utilizar essa opção pode deixar a renderização mais lenta.
showcmd
Quando a opção :set showcmd está ativa (que é o default), em modo visual, na linha de status é apresentado:
- Selecionando caracteres em uma linha, o número de caracteres.
- Selecionando mais de uma linha, o número de linhas.
- Selecionando um bloco, o tamanho em linhas x colunas.
Funções de ponto flutuante
Essas são para a turma que gosta de scripts. Foram adicionadas as funções acos(), asin(), atan2(), cosh(), exp(), fmod(), log(), sinh(), tan() e tanh().
Funções para abas
Podemos criar variáveis especificas para abas, da seguinte maneira, no exemplo, utilizando a aba corrente:
:call settabvar(tabpagenr(),"foo","bar") :echo gettabvar(tabpagenr(),"foo")
Funções para strings
Foram adicionadas as funções strchars(
:echo strchars("ahá") => 3 :echo strlen("ahá") => 4 :echo strlen("aha") => 3
Alguns arquivos de sintaxe novos
Cucumber, Markdown, SVG, Perl 6
Alguns plugins novos de filetype
Cucumber, Markdown
Fora tudo isso, o suporte para a GTK 1 foi removido (ninguém usava né?), foi adicionado suporte para Python 3 e Lua e adicionadas mais algumas opções no :TOhtml (peçam um :help TOhtml para ver todas). O Vim cada dia melhor. :-)
Comentários
Comentários fechados.
Artigos anteriores
- Pull requests em modo raiz - sex, 22 de dezembro de 2023, 09:57:09 -0300
- Qual a idade do seu repositório? - ter, 27 de dezembro de 2022, 12:50:35 -0300
- Utilizando ctags em projetos Rails mais recentes - qui, 24 de junho de 2021, 08:23:43 -0300
- Fazendo o seu projeto brotar - seg, 15 de julho de 2019, 08:57:05 -0300
- Learn Functional Programming with Elixir - sex, 02 de março de 2018, 18:47:13 -0300
- Ambiente mínimo - Driver Driven Development - qua, 23 de agosto de 2017, 15:15:03 -0300
- Ambiente mínimo - repositórios de código - dom, 16 de abril de 2017, 13:02:14 -0300
- Ambiente mínimo - terminal e navegador - dom, 02 de abril de 2017, 21:43:29 -0300
- Utilizando muitas gems no seu projeto? - sáb, 29 de outubro de 2016, 11:57:55 -0200
- Desenvolvedores e inteligência artificial - seg, 11 de julho de 2016, 09:09:38 -0300
TaQ, o VIM é muito fodão... eu ando utilizando ele muito, acabei me acostumando com isto, principalmente vendo os tutos da internet que sempre mostram como editar um ou outro arquivo com o vim! haehaheh
Mas agora é que eu estou aprendendo um pouco mais sobre seu poder.. vários atalhos eu já aprendi, só falta aprender agora os outros 98% das facilidades do VIM ! haehaheheae
Vlw... grande abraço !
PotHix, saca só: http://twitter.com/lthomaz/status/19347558245
Deve ter algum detalhe ali que ele já resolveu. :-)
[]'s!
Æ!!
Boa! :D
Curti as novas funcionalidades! Vou começar a brincar mais com o HEAD do vim.
Tentei brincar com o seu script e vi que não ta funcionando quando vc não tem sistem Ruby (no caso do RVM por exemplo) por causa do -lruby-static.
Não tenho muita idéia de como resolver mas resolvi "reportar" :)
Há braços
Tapajós, legal que você vai reavaliar o Vim, ele realmente está e vai ficar ainda mais poderoso para nós, pobre mortais que escrevem código eheehehe. :-)
Alfredo, essa da unha não pode contar. :-)
Luiz, realmente agora fica até estranho não fazer a matemática ou ir no "zoiômetro", eu até criei uns mapeamentos para altenar entre o linenumber e o relativenumber para ir acostumando. :-)
Realmente, o lado positivo de ser sexy é ter muito material saindo por aí, mas a hype que mata. Ainda mais por ser um negócio que até pouco tempo atrás meio mundo metia o pau sem ao menos gastar algumas horas para ver o que ele podia fazer.
Javaboy, assino embaixo. :-)
Vim rulez!
Me acostumei a usar o linenumber para fazer a contagem de linhas. É tão natural que eu prevejo que vou precisar de um dia ou dois para me acostumar com o relativenumber. :-)
Agora, só para aproveitar seu post e desopilar um pouco... Essa onda de sexy é um saco, não? Principalmente por ter nego que acha que editor é símbolo de "status" e não ferramenta de trabalho.
Até tem seu lado positivo, sairam uns screencasts decentes por aí para ajudar quem quer conhecer o editor e tal. Mas a hype já deu.
Uhu !!! Isso ai o VIM é fodastico, que mané Textmate que nada, ninguém me separa do meu fiel companheiro VIM...
Quantas vezes não fui chamado de doido por usar ele, agora esse pessoal mordendo a lingua, muito engraçado ver o pessoal babando ovo no VIM agora, um monte de Screencasts, artigos e tutorias, e a gente aqui Fiéis companheiros do VIM, cansando de falar isso a ANOS...
Usei MUITO Linux e uso até hoje, mas hoje uso um Mac como desktop, mas digo com orgulho que NUNCA pensei em largar meu companheiro de todas as horas, podem me chamar do que quiser e EU TB USO O VIM PRA DESENCRAVAR UNHA(nada mais rápido, essa a gente num conta, precisa chegar no nivel Jedi++) hahahahaha !!!!
Parabéns Taq, finalmente depois de Anos a Vingança do VIM, agora estamos ficando COOL e SEXY, descobriram a roda...
Mas um aviso: VIM NÃO É PARA OS FRACOS !!! SÓ OS FORTES O DOMINAM !!! :-D
Abraço
Grande TaQ,
Uso o VIM tem anos só que com o Mac acabei abandonado e só uso em servidores mesmo. Curti muito as novidades e vou ver se volto aos meus tempos de Linux e uso ele!