você está aqui: Home  → Arquivo de Mensagens

vi - Opcoes Magic e Nomagic (parte 2)

Colaboração: Fernando M. Roxo da Motta

Data de Publicação: 18 de Fevereiro de 2000

Uma outra forma de fazer isto é "escapar" o sentido "mágico" dos caracteres, o caráter que faz este "escape" é a barra invertida ( \ ). No exemplo acima teríamos :

  
  :%s/\[a-z\]123//g

Que faria a mesma função do "nomagic" para este evento do uso do padrão.

O mais interessante é que o caráter de "escape" pode fazer o papel contrário, por exemplo :

  :%s/^\([^ ]*\) \([^ ]*\)/2 1/

Esta seqüência procura por um parêntesis da direita no início da linha, seguido de uma seqüência de caracteres não brancos, seguido de um parêntesis da esquerda .... Bem, acho que dá para entender. Se "escaparmos" os parêntesis estaremos dando a eles um sentido "mágico". Neste caso eles serviriam de uma memória auxiliar para ser usado mais adiante *no mesmo comando*. Por exemplo :

   :%s/^\([^ ]*\) \([^ ]*\)/\2 \1/

Neste caso o 'vi' vai procurar por uma seqüência de caracteres não brancos a partir do início da linha, um espaço em branco e outra seqüência de não brancos. O interessante está na segunda parte, onde os caracteres "1" e "2" também estão "escapados". O "\1" significa "a primeira seqüência lembrada", e o "\2" significa "a segunda ... ". Resumindo, o comando acima vai inverter as duas primeiras colunas do arquivo.



 

 

Veja a relação completa dos artigos de Fernando M. Roxo da Motta

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script