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


  Vim
  Vim (“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 e
  navegaçã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
      :help
      voltar para o modo normal: Escape
      sair e gravar: ZZ ou :wq
      sair sem gravar: :q!
      definições: ~/vimrc
      modeline (definições por ficheiro): #vim:opcao opcao:opcao




                                 2006    Perl from Vi - Part I
Vim   Modo Normal

Deslocamento

  Formato
  [vezes]comando[deslocamento]

  Comandos
     gg, 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;

  Exemplos
  20G: ir para a linha 20
  5-: retroceder 5 linhas
  2w: 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 de
      palavra;
      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 (), {};

  Exemplos
  f}: 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 adicionais
      prefixo a/i: "a"/"inner": texto interior, excluindo ou incluindo o
      delimitador;
      delimitadores {,[,(,<,",’,‘ e correspondentes: texto entre esses
      dois limitadores;
      delimitador t: entre tags correspondentes (<b>...</b>)

  Exemplos
  if ($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/ -> /bc
  2df/ -> bc
  3x -> r/bin/bc
  ct//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

  Activar
      v: 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;

  Comandos
      O/o: movimentação na selecção (início/fim);
      ...: comandos especificados anteriormente com acção sobre a
      selecçã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 por
      todas 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ção
  actual, 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 a
      expressão de pesquisa;
      +0-9, -0-9: critério anterior, mais ou menos número de linhas
      especificadas;
      criterio,criterio: desde primeiro critério até ao seguinte;

                                 2006     Perl from Vi - Part I
Vim   Ex

Comandos


  Comandos
     d: 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.

  Comandos
      w, 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 ficheiro
       desde 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.



  Comandos
      syntax 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 de
      comandos;
      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 e
     autoindent;
     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=76
   syntax on
   set nocompatible
   set bs=2
   set nocindent
   set noautoindent
   set ruler
   set showmatch
   set history=50
   set incsearch
   set nohlsearch
   set nobackup
   set showcmd




                      2006     Perl from Vi - Part I
Vim   Exmplo

.vimrc




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




                         2006     Perl from Vi - Part I

Perl From Vi, Part I

  • 1.
    Perl from Vi- Part I Luciano Rocha Braga.pm http://braga.pm.org/ 26 de Outubro de 2006 2006 Perl from Vi - Part I
  • 2.
    Vim Introdução Vim Vim (“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 e navegaçã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
  • 3.
    Vim Introdução Quickref :help voltar para o modo normal: Escape sair e gravar: ZZ ou :wq sair sem gravar: :q! definições: ~/vimrc modeline (definições por ficheiro): #vim:opcao opcao:opcao 2006 Perl from Vi - Part I
  • 4.
    Vim Modo Normal Deslocamento Formato [vezes]comando[deslocamento] Comandos gg, 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; Exemplos 20G: ir para a linha 20 5-: retroceder 5 linhas 2w: avançar 2 palavras 2006 Perl from Vi - Part I
  • 5.
    Vim Modo Normal Deslocamento, cont. Comandos, cont. B, E, W: b/e/w, mas considerando o espaço como separador de palavra; 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 (), {}; Exemplos f}: ir para próximo } F{: ir para anterior { %: trocar entre as duas posições dos dois exemplos anteriores 2006 Perl from Vi - Part I
  • 6.
    Vim Modo Normal Deslocamentos adicionais Deslocamentos adicionais prefixo a/i: "a"/"inner": texto interior, excluindo ou incluindo o delimitador; delimitadores {,[,(,<,",’,‘ e correspondentes: texto entre esses dois limitadores; delimitador t: entre tags correspondentes (<b>...</b>) Exemplos if ($true) { print "<p>ola</p>"; } a( -> ($true) i{ -> { print "<p>ola</p>"; } it -> ola 2006 Perl from Vi - Part I
  • 7.
    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/ -> /bc 2df/ -> bc 3x -> r/bin/bc ct//local<ESC> -> /local/bin/bc 2006 Perl from Vi - Part I
  • 8.
    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
  • 9.
    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
  • 10.
    Vim Modo Visual Modo visual Activar v: 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; Comandos O/o: movimentação na selecção (início/fim); ...: comandos especificados anteriormente com acção sobre a selecçã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 por todas as linhas do bloco; 2006 Perl from Vi - Part I
  • 11.
    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ção actual, e substitui o original pelo resultado. Ex : -> Introdução de comandos Ex. 2006 Perl from Vi - Part I
  • 12.
    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 a expressão de pesquisa; +0-9, -0-9: critério anterior, mais ou menos número de linhas especificadas; criterio,criterio: desde primeiro critério até ao seguinte; 2006 Perl from Vi - Part I
  • 13.
    Vim Ex Comandos Comandos d: 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
  • 14.
    Vim Ex Comandos, cont. Comandos w, 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 ficheiro desde 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
  • 15.
    Vim Ex Comandos, cont. Comandos syntax 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 de comandos; retab: reconstruir tabs; set: alterar definições; 2006 Perl from Vi - Part I
  • 16.
    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 e autoindent; 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
  • 17.
    Vim Exmplo .vimrc set tw=76 syntax on set nocompatible set bs=2 set nocindent set noautoindent set ruler set showmatch set history=50 set incsearch set nohlsearch set nobackup set showcmd 2006 Perl from Vi - Part I
  • 18.
    Vim Exmplo .vimrc set grepprg=grep -nH $* filetype indent plugin on if has("autocmd") autocmd BufReadPost * if line("’"") > 0 && line ("’"") <= line("$") | exe "normal g’"" | endif endif let c_comment_strings=1 let is_bash=1 cmap NOAI set noai nocin noci 2006 Perl from Vi - Part I