à 6 anos; Comecei a programar à 6 anos; • Programador web a 4 anos; Programador web a 4 anos; • Usuário linux há 5 anos; Usuário linux há 5 anos; • Python, Java, ASP, Visual Basic; Python, Java, ASP, Visual Basic; • Moderador do GruPy-DF; Moderador do GruPy-DF; • Participante do Candjango; Participante do Candjango; • Contribui com vários projetos opensource. Contribui com vários projetos opensource.
Bram Moolenaar e seu primeiro Foi criado por Bram Moolenaar e seu primeiro release foi em 1991; release foi em 1991; • Baseado no editor Vi, um editor usado em Baseado no editor Vi, um editor usado em sistemas Unix-like; sistemas Unix-like; • Possui novas e melhores funcionalidades, por Possui novas e melhores funcionalidades, por isso o nome (Vim – Vi Improved); isso o nome (Vim – Vi Improved);
e código fonte gratuito e código fonte disponível; disponível; • Onipresente: Onipresente: ou seja, roda em qualquer SO ou seja, roda em qualquer SO existente e em várias formas (terminal ou existente e em várias formas (terminal ou gráfico): gráfico): – Windows, Linux, Mac OS, AmigaOS, DOS, AIX, HP- Windows, Linux, Mac OS, AmigaOS, DOS, AIX, HP- UX, FreeBSD, Solaris, etc... UX, FreeBSD, Solaris, etc...
interpretadores (Perl, Python e Ruby) ou sua linguagem de (Perl, Python e Ruby) ou sua linguagem de script script • Preparado: Preparado: suporte a 500 linguagens, syntax suporte a 500 linguagens, syntax hightlight e vários esquemas de cores hightlight e vários esquemas de cores • Experiente: Experiente: já tem 20 anos de idade ;) já tem 20 anos de idade ;)
o Vim já fica Na maioria das distribuições Linux, o Vim já fica instalado por padrão. instalado por padrão. • Pode-se instalar a versão gráfica do editor; Pode-se instalar a versão gráfica do editor; – Debian Debian • sudo apt-get install vim-gtk [vim-gnome] sudo apt-get install vim-gtk [vim-gnome] – Fedora Fedora • yum install gvim yum install gvim – Outras distribuições (compilando) Outras distribuições (compilando) • http://bit.ly/compile-gvim http://bit.ly/compile-gvim
Abrindo um ou mais arquivos – vim arq [arq2] [arqN] vim arq [arq2] [arqN] • Abrir em somente leitura Abrir em somente leitura – vim -R arq [arq2] [arqN] vim -R arq [arq2] [arqN] • Abrir e posiciona cursor na última linha Abrir e posiciona cursor na última linha – vim + arq vim + arq • Abrir e posiciona cursor na linha X Abrir e posiciona cursor na linha X – vim +15 arq vim +15 arq • Abrir arquivo e fazendo busca ao mesmo tempo Abrir arquivo e fazendo busca ao mesmo tempo – vim +/padrão arq vim +/padrão arq
Grava texto e continua editando – :w[!] ou :w[!] <nome do arquivo> :w[!] ou :w[!] <nome do arquivo> • Grava texto (se tiver alteração) e sai do Vim Grava texto (se tiver alteração) e sai do Vim – ZZ ZZ • Salva arquivo e sai do Vim Salva arquivo e sai do Vim – :wq[!] :wq[!] • Fecha do editor Fecha do editor – :q :q • Fecha o editor sem salvar as alterações Fecha o editor sem salvar as alterações – :q! :q! ! - mesmo em RO ! - mesmo em RO ! - mesmo em RO ! - mesmo em RO
um editor modal O Vim é um editor modal • Isso dificulta o estudo mas você tem: Isso dificulta o estudo mas você tem: – Atalhos mais simples Atalhos mais simples – Significados diferentes em cada modo de operação Significados diferentes em cada modo de operação • Tipos: Tipos: – Normal Mode Normal Mode – Insert Mode Insert Mode – Visual Mode Visual Mode – Command Mode Command Mode
simples: É usado para fazer ações simples: – Deletar; Deletar; – Copiar; Copiar; – Colar; Colar; – Entre várias outras... Entre várias outras... • Quando abre o editor, já está no Modo Normal Quando abre o editor, já está no Modo Normal • Atalho: Atalho: <Esc> <Esc>
inserir o seu texto É neste modo que irá inserir o seu texto • Várias formas de iniciar o modo de edição: Várias formas de iniciar o modo de edição: – <a> - <a> - inicia um caracter após do cursor atual inicia um caracter após do cursor atual – <i> - <i> - inicia um caracter antes do cursor atual inicia um caracter antes do cursor atual – <Shift> + <a> - i <Shift> + <a> - inicia no final da linha nicia no final da linha – <Shift> + <i> - <Shift> + <i> - inicia no início da linha inicia no início da linha
de um texto que Modo que seleciona um trecho de um texto que deseja: deseja: – Por caracteres: Por caracteres: <v> <v> – Por linha: Por linha: <Shift> + <v> <Shift> + <v> – Por blocos: Por blocos: <Ctrl> + <v> <Ctrl> + <v>
desejados para, por É aonde digita os comandos desejados para, por exemplo: exemplo: – Salvar Salvar – Ir para linha X Ir para linha X – Copiar e colar Copiar e colar – Procurar e substituir; Procurar e substituir; – (...) (...)
Copiar trecho selecionado – y y ou ou :y :y • Copiar linha inteira Copiar linha inteira – yy yy ou ou :yy :yy • Colando no cursor atual Colando no cursor atual – p p ou ou :p :p • Colando acima da linha atual Colando acima da linha atual – P P ou ou :P :P
Modo normal Modo normal /<texto a ser procurado> /<texto a ser procurado> – Modo de comando: Modo de comando: :/<texto a ser procurado> :/<texto a ser procurado>
Mudar trecho no cursor atual Mudar trecho no cursor atual :s/<texto antigo>/<texto novo> :s/<texto antigo>/<texto novo> – Mudar trecho em todo o arquivo Mudar trecho em todo o arquivo :%s/<texto antigo>/<texto novo> :%s/<texto antigo>/<texto novo> – Mudar trecho em todo o arquivo (com confirmação) Mudar trecho em todo o arquivo (com confirmação) :%s/<texto antigo>/<texto novo>/c :%s/<texto antigo>/<texto novo>/c
Tem uma utilidade específica, que é armazenar cópias internas, do clipboard, deleções, entre cópias internas, do clipboard, deleções, entre outros; outros; • Ou seja, é um clipboard do editor Ou seja, é um clipboard do editor – :”0 :”0 - registra a seleção no registrador 0; - registra a seleção no registrador 0; – :”$ :”$ - registra a seleção no registrador $; - registra a seleção no registrador $; – :”% :”% - registra o nome do arquivo; - registra o nome do arquivo; – :”/ :”/ - registra o último padrão de busca; - registra o último padrão de busca; – :”+ :”+ - registra o último texto no clipboard do SO; - registra o último texto no clipboard do SO;
esconde São como dobras nas quais o vim esconde partes do texto partes do texto – zo zo – abre uma dobra; – abre uma dobra; – zc zc – fecha a dobra; – fecha a dobra; – zR zR – abre todas as dobras do arquivo atual; – abre todas as dobras do arquivo atual; – zj zj – desce até a próxima dobra; – desce até a próxima dobra; – zk zk – sobe até a próxima dobra; – sobe até a próxima dobra;
:tabnew [arq] :tabnew [arq] • Criando uma aba e abrindo um arquivo Criando uma aba e abrindo um arquivo – :tabedit arq :tabedit arq • Alternando para a próxima aba Alternando para a próxima aba – :tabnext :tabnext • Alternando para a aba anterior Alternando para a aba anterior – :tabprevious :tabprevious
abertos que estão na memória • Listando arquivos no buffer Listando arquivos no buffer – :ls :ls • Abrindo determinado arquivo do buffer Abrindo determinado arquivo do buffer – :buffer <id do buffer> :buffer <id do buffer> • Indo para o próximo buffer Indo para o próximo buffer – :bnext :bnext • Indo para o buffer anterior Indo para o buffer anterior – : bprevious : bprevious
do editor, você pode abrir Dentro da interface do editor, você pode abrir várias janelas; várias janelas; – Abrindo uma janela lateral Abrindo uma janela lateral • <Ctrl> + w + v <Ctrl> + w + v – Abrindo uma janela horizontal Abrindo uma janela horizontal • <Ctrl> + w + n <Ctrl> + w + n – Movendo para janela à esquerda e a direita Movendo para janela à esquerda e a direita • <Ctrl> + w + h / <Ctrl> + w + l <Ctrl> + w + h / <Ctrl> + w + l – Movendo para janela para cima ou abaixo Movendo para janela para cima ou abaixo • <Ctrl> + w + k / <Ctrl> + w + j <Ctrl> + w + k / <Ctrl> + w + j
Aprenda uma Não decore todos os comandos. Aprenda uma coisa de cada vez; coisa de cada vez; • Aprendeu os comandos que precisa, então Aprendeu os comandos que precisa, então busque novos comandos busque novos comandos • Vai ser difícil, mas todo aprendizado exige Vai ser difícil, mas todo aprendizado exige esforço – esforço – No pain, No gain No pain, No gain; ;