Click here to load reader
Upload
luciano-rocha
View
722
Download
9
Embed Size (px)
DESCRIPTION
Vim editor introduction.
Citation preview
Perl from Vi - Part I
Luciano Rocha
Braga.pm http://braga.pm.org/
26 de Outubro de 2006
2006 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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