18

Click here to load reader

Perl From Vi, Part I

Embed Size (px)

DESCRIPTION

Vim editor introduction.

Citation preview

Page 1: Perl From Vi, Part I

Perl from Vi - Part I

Luciano Rocha

Braga.pm http://braga.pm.org/

26 de Outubro de 2006

2006 Perl from Vi - Part I

Page 2: Perl From Vi, Part I

Vim

Introdução

VimVim (“Vi IMproved”) é um editor de texto configurável e programável,desenhado para edição de texto rápida e eficiente.

Suporta colorização por sintaxe, escrita inteligente, compilação enavegação por erros, funções, variáveis e tipos.

Url: http://www.vim.org/

Diferentes modos de funcionamento:normal: introdução de comandos (o modo inicial);visual: introdução de comandos e extensão de área de acção;command-line: comandos ex/filtragem/procura;insert: inserção de texto;...

2006 Perl from Vi - Part I

Page 3: Perl From Vi, Part I

Vim

Introdução

Quickref:helpvoltar para o modo normal: Escapesair e gravar: ZZ ou :wqsair sem gravar: :q!definições: ~/vimrcmodeline (definições por ficheiro): #vim:opcao opcao:opcao

2006 Perl from Vi - Part I

Page 4: Perl From Vi, Part I

Vim Modo Normal

Deslocamento

Formato[vezes]comando[deslocamento]

Comandosgg, G: início e fim do documento;Ctrl+u, Ctrl+d: página;h, j/+, k/-, l: deslocamento←, ↓, ↑,→;0, $: início e fim da linha;b, e: início e fim da palavra actual;w, ge: início da próxima palavra; fim da palavra anterior;

Exemplos20G: ir para a linha 205-: retroceder 5 linhas2w: avançar 2 palavras

2006 Perl from Vi - Part I

Page 5: Perl From Vi, Part I

Vim Modo Normal

Deslocamento, cont.

Comandos, cont.B, E, W: b/e/w, mas considerando o espaço como separador depalavra;f, F, t, T[carácter]: próximo ou anterior carácter especificado,inclusivo/exclusivo (na mesma linha);%: início ou fim do bloco actual (), {};

Exemplosf}: ir para próximo }F{: ir para anterior {%: trocar entre as duas posições dos

dois exemplos anteriores

2006 Perl from Vi - Part I

Page 6: Perl From Vi, Part I

Vim Modo Normal

Deslocamentos adicionais

Deslocamentos adicionaisprefixo a/i: "a"/"inner": texto interior, excluindo ou incluindo odelimitador;delimitadores {,[,(,<,",’,‘ e correspondentes: texto entre essesdois limitadores;delimitador t: entre tags correspondentes (<b>...</b>)

Exemplosif ($true) { print "<p>ola</p>"; }

a( -> ($true)i{ -> { print "<p>ola</p>"; }it -> ola

2006 Perl from Vi - Part I

Page 7: Perl From Vi, Part I

Vim Modo Normal

Remoção

Comandos - remoção

x: apagar carácter;d[deslocamento]: eliminar selecção;c[deslocamento]: substituir selecção;dd/cc: eliminar/substituir linha;D/C: substituir até final da linha;

Exemplos/usr/bin/bc

2dt/ -> /bc2df/ -> bc3x -> r/bin/bcct//local<ESC> -> /local/bin/bc

2006 Perl from Vi - Part I

Page 8: Perl From Vi, Part I

Vim Modo Normal

Colagem/Marcação

Colagem

["a-z]y[deslocamento]: copiar para o registo especificado;["a-z]p: colar conteúdo do registo na linha/caractér seguinte;["a-z]P: colar conteúdo do registo na linha/caractér actual;yy/Y: copiar linha completa

Marcação

ma-z: marcar registo especificado;’/‘/g’/g‘: ir ou referir marca especificada;

2006 Perl from Vi - Part I

Page 9: Perl From Vi, Part I

Vim Modo Normal

Alteração

Comandos«/»: alterar “indent”;J: juntar linhas;gq/gw: reformatar;i: inserir na posição actual;a: inserir na posição seguinte;A: inserir no final da linha;I: inserir no início da linha (ignorando espaços);r: substituir carácter actual;R: modo de substituição;s: eliminar carácter actual, ir para modo de substituição;S: substituir linha actual;o: adicionar nova linha;O: inserir nova linha;u, Ctrl-R: undo/redo;

2006 Perl from Vi - Part I

Page 10: Perl From Vi, Part I

Vim Modo Visual

Modo visual

Activarv: modo visual linear, começando no carácter actual;V: modo visual por linha, começando na linha actual;Ctrl+V: modo visual por blocos, começando na posição actual;gv: selecção antiga;

ComandosO/o: movimentação na selecção (início/fim);...: comandos especificados anteriormente com acção sobre aselecção;: trocar maiúsculas/minúsculas;u/U: tornar maiúsculas/minúsculas;I/A: inserir no início/final do bloco. A alteração é propagada portodas as linhas do bloco;

2006 Perl from Vi - Part I

Page 11: Perl From Vi, Part I

Vim Command-line

Command-line

Pesquisa

*, #: pesquisa (avançando/retrocedendo) da palavra actual;/, ?: introdução de expressões regulares (normais) de pesquisa;

Filtragem

!: executa o comando introduzido, com input a linha ou selecçãoactual, e substitui o original pelo resultado.

Ex: -> Introdução de comandos Ex.

2006 Perl from Vi - Part I

Page 12: Perl From Vi, Part I

Vim Ex

Formato

Formato[intervalo]comando[argumentos]

Intervalo.: linha actual;0, $: início e fim do ficheiro;%: todo o ficheiro;0-9: número da linha;’a-z: marca;’<, ’>: início e fim de selecção actuais;/pesquisa/, ?pesquisa?: primeira linha encontrada que satisfaz aexpressão de pesquisa;+0-9, -0-9: critério anterior, mais ou menos número de linhasespecificadas;criterio,criterio: desde primeiro critério até ao seguinte;

2006 Perl from Vi - Part I

Page 13: Perl From Vi, Part I

Vim Ex

Comandos

Comandosd: apagar;!: filtrar;r: ler de ficheiro;y: copiar;s: /search/replace/gi; / é seleccionável;

Exemplos:%s/old/new/g

-> substituir old por new em todo o ficheiro:?^diff?,/^diff/-1d

-> eliminar ficheiro actual no patch:’<,’>!sort -n -k2

-> ordenar pela segunda coluna, numericamente

2006 Perl from Vi - Part I

Page 14: Perl From Vi, Part I

Vim Ex

Comandos, cont.

Comandosw, e: gravar/editar, com nome de ficheiro facultativo;g: efectuar comando globalmente;earlier/later: voltar à situação existente na altura especificada;

Exemplos:e!

-> reeditar ficheiro, ignorando alterações:,$w /tmp/tail

-> criar /tmp/tail com o conteúdo do ficheirodesde a linha actual

:g/^#/d-> eliminar todas as linhas começadas por #

:earlier 10m-> voltar à situação 10m atrás

2006 Perl from Vi - Part I

Page 15: Perl From Vi, Part I

Vim Ex

Comandos, cont.

Comandossyntax on: activar colorização de sintaxe;filetype indent plugin on: detecção de sintaxe/indent;make: compilar e analisar os erros;cnext, cprev: saltar entre os erros de compilação;tag: procurar por tag (ctags/cscope);tnext, tprev: saltar entre tags encontradas;n, N: próximo ou anterior ficheiro especificado na linha decomandos;retab: reconstruir tabs;set: alterar definições;

2006 Perl from Vi - Part I

Page 16: Perl From Vi, Part I

Vim Ex

Definições

Definições

syntax=tipo: definir tipo de sintaxe (perl, C, sh, java, ...);autoindent, cindent, copyindent: activar autoindentação;noai, nocin, noci: desactivar;filetype=tipo: definir tipo de ficheiro, definindo syntax eautoindent;fileencoding=tipo: enconding do ficheiro: latin1, utf-8, ...;fileformat=tipo: formato de delimitador de linhas: dos, unix, mac;tw=número: tamanho máximo de linhas esperado;et: expand tabs, tabs são transformadas em espaços;sw=número: número de espaços para » e «;ts=número: número de espaços que um tab ocupa;

2006 Perl from Vi - Part I

Page 17: Perl From Vi, Part I

Vim Exmplo

.vimrc

set tw=76syntax onset nocompatibleset bs=2set nocindentset noautoindentset rulerset showmatchset history=50set incsearchset nohlsearchset nobackupset showcmd

2006 Perl from Vi - Part I

Page 18: Perl From Vi, Part I

Vim Exmplo

.vimrc

set grepprg=grep\ -nH\ $*filetype indent plugin onif has("autocmd")autocmd BufReadPost *\ if line("’\"") > 0 && line ("’\"") <= line("$") |\ exe "normal g’\"" |\ endifendiflet c_comment_strings=1let is_bash=1cmap NOAI set noai nocin noci

2006 Perl from Vi - Part I