Material retirado do site http://underlinux.com.br/modules.php?name=news&file=print&sid=4395



Documentos relacionados
Dicas para usar melhor o Word 2007

Iniciação à Informática

Como incluir artigos:

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Mozart de Melo Alves Júnior

Table of Contents. PowerPoint XP

Manual do Usuário. Minha Biblioteca

Manual de operação. BS Ponto Versão 5.1

Portal da Prefeitura de São Paulo SECOM. MANUAL DO WARAM v. 1.5 Secretarias

Word 1 - Introdução Principais recursos do word A janela de documento Tela principal

COMO OTIMIZAR A SUA PLANILHA ATRAVÉS DA GRAVAÇÃO DE UMA MACRO EM EXCEL

Planilha Eletrônica Excel

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Logo abaixo temos a Barra de Menus que é onde podemos acessar todos os recursos do PHP Editor.

Lab 6 Editor vi ou vim

Manual Sistema de Autorização Online GW

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

Processo de Controle das Reposições da loja

Anexo III Funcionamento detalhado do Sistema Montador de Autoria

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Manual Administrador - Mídia System

Manual de configuração do sistema

Inventario de produtos

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

A Estação da Evolução

MANUAL DO ANIMAIL Terti Software

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Vendas e Caixa)

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Portal do Projeto Tempo de Ser

O Microsoft Office é composto por diversos softwares, dentre eles o Word, o Excel, o Access e o Power Point.

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Guia para utilização do Editor VI

Primeiros Passos para o Simulador de Ações do FinanceDesktop. Parte A INICIANDO E CONFIGURANDO (5 passos)

Manual do Google agenda. criação e compartilhamento de agendas

COMO COLABORAR NO WIKI DO MOODLE 1. Orientações para produção escolar colaborativa no wiki do Moodle:

2. ENTRADA DE DADOS 2.1. TEXTOS

Poder Judiciário Tribunal Regional Federal da Terceira Região

Mozart de Melo Alves Júnior

Trecho retirando do Manual do esocial Versão 1.1

Unidade 19: Macros Introdução Antes de você começar. Adicionando a Guia Desenvolvedor

Banco de Dados Microsoft Access: Criar tabelas

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

Como acessar o novo webmail da Educação? Manual do Usuário. 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S.

MANUAL PAPELETA MOTORISTA Criado em: 15/02/2013 Atualizado em: 12/11/2014

- Configuração de Ambiente para Aplicação de Patch

Manual - Gemelo Backup Online WEB

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Manual SAGe Versão 1.2 (a partir da versão )

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

ROBERTO OLIVEIRA CUNHA

4 RECURSOS AUTOMATIZADOS DO EXCEL

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

WIN + D WIN + M SHIFT + WIN + M WIN + R WIN + E WIN + PAUSE BREAK

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Mobile

Como funciona? SUMÁRIO

Manual de Utilização COPAMAIL. Zimbra Versão 8.0.2

Gerente de Tecnologia: Ricardo Alexandre F. de Oliveira Marta Cristiane Pires M. Medeiros Mônica Bossa dos Santos Schmid WORD 2007

Manual Captura S_Line

Lazarus pelo SVN Linux/Windows

Manual de Utilização

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

MICROSOFT OFFICE EXCEL 2007

Como produzir e publicar uma apresentação online dinâmica (Prezi)

Primeiros passos das Planilhas de Obra v2.6

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Manual das planilhas de Obras v2.5

Manual para Envio de Petição Inicial

Criando Quiz com BrOffice.impress

Controle do Arquivo Técnico

Sistema de Chamados Protega

Tabelas vista de estrutura

Curso de Programação Computadores

Manual da Administração do site Abrasel 2.0

Manual das planilhas de Obras

Questão Essência do Excel

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

APOSTILA DE EXCEL 2007

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Controle Patrimonial WEB

MANUAL DE OPERAÇÕES DE CAMPO Sistema de Coletores

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

Manual de digitação de contas Portal AFPERGS

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Sistema Click Principais Comandos

CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos

Manual do usuário. Softcall Java. versão 1.0.5

15/8/2007 Gerencia de Tecnologia da Informação Claudia M.S. Tomaz

Como obter Ajuda e Suporte

Modo Estrutura é o ambiente de definição e estruturação dos campos, tipos de dados, descrição e propriedades do campo.

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Estoque)

Kobo Desktop. Manual do Usuário

Manual de Utilização

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

Treinamento Sistema Condominium Módulo III

Procedimentos para Reinstalação do Sisloc

Adquirindo prática para manipular o Mouse e o Teclado

02 - Usando o SiteMaster - Informações importantes

Transcrição:

Guia para utilização do Editor VI Data: Quinta, março 24 @ 04:47:45 BRST Tópico: Documentação Material retirado do site http://underlinux.com.br/modules.php?name=news&file=print&sid=4395 Por: Ivo Fernandez Lopez O objetivo deste documento é mostrar a potencialidade do editor de textos VI e servir como guia de consulta para os usuários. Ele é propositadamente incompleto, evitando informação excessiva e grande custo para a sua elaboração sem retorno efetivo. Para uso mais avançado, recomendo o manual do clone do VI denominado ELVIS, que é muito bom e completo ( este programa é gratuito e pode ser instalado em micros. Para os que gostarem do VI, eu recomendo... ). Por outro lado, procurei colocar uma grande quantidade de exemplos, com o objetivo de torná-lo um guia de consulta, pois essa é uma grande carência de todos os manuais a que tive acesso ( e foram vários pois, a não ser o do ELVIS, nunca consegui informações de forma compacta e completa em um único documento ). Comandos para editar texto ( inserir, escrever por cima e substituir ) Comando para inserir texto antes da posição corrente ==> i Uso: inserir texto antes da posição corrente. Quando terminar de inserir teclar Esc. Pode-se inserir um texto através do mouse, desde que tenhamos guardado no buffer do mouse e estejamos em modo de inserção. O comando I insere texto no início da linha corrente. Comando para inserir texto após a posição corrente ==> a Uso: inserir texto após a posição corrente. Quando terminar de inserir teclar Esc. Pode-se inserir um texto através do mouse, desde que tenhamos guardado no buffer do mouse e estejamos em modo de inserção. O comando A insere texto ao final da linha corrente. Comando para inserir uma linha e abri-la para edição ==> o ou O Uso: inserir linha na linha seguinte à linha corrente ( comando o ) ou antes da linha corrente (comando O). Quando terminar de inserir teclar Esc. Comando para escrever em cima do texto corrente ==> R Uso: Tudo que for teclado substituirá o texto já existente. Quando terminar teclar Esc. Comando para substituir um certo trecho do texto por um novo texto ==> c Funciona como um comando de eliminação ( comando d ) seguido de um comando de inserção ( comando a ou i ). Quando terminar de inserir teclar Esc. cc ( substitui toda a linha corrente )

3cc ( substitui a linha corrente e as 2 próximas ) cw ( substitui a palavra onde o cursor se situa ) cw ( substitui a palavra onde o cursor se situa ) Obs: a diferença entre w e W é a seguinte: o w considera como final da palavra qualquer caracter da acentuação, enquanto que o W só considera a palavra finalizada quando encontra um caracter branco ) 4cw ( substitui a palavra corrente e as 3 próximas ) 3cW ( substitui a palavra corrente e as próximas 2 ) c$ ( substitui todos os caracteres da posição corrente ao final da linha ). O símbolo $ indica final de linha. Este comando é equivalente ao comando C c^ ( substitui todos os caracteres da primeira coluna até a posição corrente ). O símbolo ^ indica início de linha. c_f ( substitui todos os caracteres da posição atual até a primeira aparição de um underscore na linha corrente ) 3cft ( substitui todos os caracteres da posição atual até a terceira aparição de uma letra t na linha corrente ) 7cl ( substitui os 7 primeiros caracteres ) C ( substitui tudo da posição corrente até o final da linha. Equivale ao c$ ) Obs: o comando u ( undo ) desfaz a operação do comando C. Comando para substituir um certo número de caracteres por um novo texto ==> s Ele funciona como um comando de eliminação ( comando d ) seguido de um comando de inserção. Quando terminar de inserir teclar Esc. 7s ( substitui os 7 primeiros caracteres, equivalente a 7cl ) S ( substitui toda a linha corrente, equivalente ao cc ) Obs: o comando u ( undo ) desfaz a operação do comando s. Comando para substituir um certo número de caracteres por um outro caracter ==> r Uso: um número ( opcional ) seguido pela letra r, seguido pelo caracter que substituirá. Exemplo: ra (substitui o caracter corrente pela letra a, não entra em insert mode ) 5r= (substitui 5 caracteres pela símbolo de igualdade. Não entra em insert mode ) Obs: este comando é útil para substituir rapidamente um caracter sem entrar em insert mode ) Comando para trocar de letra maiúscula para minúscula e vice versa ==> ~ Este comando, quando teclado sobre uma letra, substitui a letra maiúscula pela letra minúscula e vice versa. Comandos para posicionar o cursor, apagar, armazenar no buffer, copiar ( pequeno número de linhas ) Comando para posicionar o cursor em uma linha ==> G Uso: colocar o numero da linha seguido da letra G

Exemplo: 121G ( vai para a linha 121 ) G ( vai para a última linha ) Comando para posicionar o cursor em uma coluna ==> Uso: colocar a coluna seguido pelo caracter. Caso a coluna não exista, o comando posiciona no último caracter da linha. Exemplo: 12 ( posiciona o cursor na coluna 12 da linha corrente ). Comando para saber qual o número da linha em que está o cursor, o total de linhas e o nome do arquivo sendo editado ==> CtrlG ( tecla control e letra G apertadas simultaneamente ) Comando para marcar uma linha para posterior referência ==> m Utilizado para colocar uma identificação em uma linha, que permitirá que posteriormente seja copiada, movida, apagada ou que se retorne a ela. Uso: colocar a letra m seguido de uma única letra que identificará a marca associada a linha. ma ( marca a linha aonde o cursor está. A letra a servirá para referenciá-la. Ver comando ) Comando para posicionar o cursor em uma linha que já foi previamente marcada ==> Uso: colocar o plic seguido da letra referente à linha que marcamos anteriormente. Exemplo: a ( posiciona o cursor na linha que foi anteriormente marcada com ma ) ( posiciona o cursor na posição em que estava antes da posição atual ) Comando para colocar no buffer anônimo um conjunto de caracteres ou linha (s) ==> y Este comando permite armazenar caracteres para posterior utilização. O uso mais freqüente é guardá-los e, a seguir, dar um comando p para repeti-los em outro local. Uso: Um número ( opcional ), seguido da letra y, seguido de um identificador dos caracteres a serem armazenados. yy ( coloca toda a linha corrente no buffer anônimo ) 3yy ( coloca a linha corrente e as 2 próximas no buffer anônimo ) yw ( coloca a palavra onde o cursor se situa no buffer anônimo ) yw ( coloca a palavra onde o cursor se situa no buffer anônimo ) Obs: a diferença entre w e W é a seguinte: o w considera como final da palavra qualquer caracter da acentuação, enquanto que o W só considera a palavra finalizada quando encontra um caracter em branco 4yw ( coloca a palavra corrente e as 3 próximas no buffer anônimo ) 3yW ( coloca a palavra corrente e as próximas 2 no buffer anônimo ) y$ ( coloca todos os caracteres da posição corrente ao final da linha no buffer

anônimo ). O símbolo $ indica final de linha. y^ ( coloca todos os caracteres da primeira coluna até a posição corrente no buffer anônimo ). O símbolo ^ indica início de linha. yf_ ( coloca no buffer se nome todos os caracteres da posição atual até a primeira aparição de um underscore na linha corrente ) 3yft ( coloca no buffer sem nome todos os caracteres da posição atual até a terceira aparição de uma letra t na linha corrente ) 7yl ( coloca os 7 primeiros caracteres no buffer anônimo ) Comando para inserir o buffer anônimo em alguma posição do texto ==> p ou P Serve para inserir o que foi gravado no buffer anônimo após a posição do cursor ( letra p ) ou antes ( letra P ). Se o buffer contiver linhas ( ex: foi dado comando yy ) este comando insere linhas, caso contrário insere um texto ( ex: o último comando para colocar no buffer foi yw ) Comando para colocar em um buffer com nome um conjunto de caracteres ou linha(s) ==> ay ou by etc. Este comando permite armazenar caracteres para posterior utilização. O uso mais freqüente é guardá-los e a seguir dar um comando p para repeti-los em outro local. A vantagem deste comando com relação ao y puro é que como o buffer aonde são armazenados os caracteres ( ou linhas ) tem nome, este pode ser utilizado posteriormente sem risco de perder a informação ( lembre que o buffer anônimo é atualizado a cada vez que colocamos algo no buffer ou a cada vez que alteramos alguma coisa no texto ). Além disso, permite que passemos informação de um arquivo para outro, conforme pode ser visto no exemplo. Uso: Um número ( opcional ), seguido da letra que dá nome ao buffer ( minúscula ), seguido de y, seguido de um identificador dos caracteres a serem armazenados. Caso coloquemos a letra que identifica o buffer em maiúscula, significa que acrescentaremos ao buffer a informação do comando atual. ayy ( coloca toda a linha corrente no buffer a ) B2yy ( adiciona ao buffer b a linha corrente e a próxima ) Para trazer algumas linhas de um outro arquivo podemos executar os seguintes comandos: :w ( salva o arquivo que está sendo editado ) :e arquivo2 ( abre para edição o arquivo de nome arquivo2 ) /SUBROUTINE ( procura a palavra SUBROUTINE ) k20yy ( coloca no buffer k a linha corrente e as próximas dezenove ) :e# ( retorna para o arquivo que estávamos editando anteriormente ) 200G ( posiciona o cursor na linha 200 ) kp ( copia o buffer k para após a linha corrente ) Comando para inserir um buffer com nome em alguma posição do texto ==> ap ou ap ou bp etc Serve para inserir o que foi gravado em um buffer com nome após a posição do cursor ( letra p ) ou antes ( letra P ). Se o buffer contiver linhas ( ex: foi dado comando yy ) este comando insere linhas, caso contrário insere um texto.

Uso: devem ser colocadas aspas seguidas da letra que indica o nome do buffer, seguida pela letra p ( inserção após a posição corrente ) ou letra P ( inserção antes da posição corrente ). Ver comando anterior para exemplo de uso. Exemplo: ap ( caso o conteúdo do buffer a seja um conjunto de caracteres insere-o na posição a seguir da posição atual do cursor. Caso seja um conjunto de linhas, insere as linhas do buffer na linha seguinte à linha corrente ) Comando para apagar um conjunto de caracteres ou linhas ==> d Uso: Um número ( opcional ), seguido da letra d, seguido de um identificador dos caracteres a serem apagados. dd ( apaga toda a linha corrente ) 3dd ( apaga a linha corrente e as 2 próximas ) dw ( apaga a palavra onde o cursor se situa ) dw ( apaga a palavra onde o cursor se situa ) Obs: a diferença entre w e W é a seguinte: o w considera como final da palavra qualquer caracter da acentuação, enquanto que o W só considera a palavra finalizada quando encontra um caracter em branco. 4dw ( apaga a palavra corrente e as 3 próximas ) 3dW ( apaga a palavra corrente e as próximas 2 ) d$ ( apaga todos os caracteres da posição corrente ao final da linha ). O símbolo $ indica final de linha. d^ ( apaga todos os caracteres da primeira coluna até a posição corrente ). O símbolo ^ indica início de linha. df_ ( apaga todos os caracteres da posição atual até a primeira aparição de um underscore na linha corrente ) 3dft ( apaga todos os caracteres da posição atual até a terceira aparição de uma letra t na linha corrente ) 7dl ( apaga os 7 primeiros caracteres após a posição do cursor ) D ( apaga tudo da posição corrente até o final da linha ) Obs: o comando u ( undo ) desfaz a última operação realizada. Muito útil para o caso de apagar erradamente. Obs: o comando U refaz a linha corrente para a última situação. Obs: da mesma forma que o comando y o comando d também coloca o que foi apagado no buffer anônimo. É muito útil para mover texto de um local para outro do arquivo ( apaga e na nova posição usa o comando p ) Obs: para apagar um conjunto grande de linhas deve-se utilizar o comando :d Comando para apagar um número conhecido de caracteres ==> x O comando x apaga o caracter corrente e o comando X apaga o caracter anterior. x ( apaga o caracter corrente ) 2X ( apaga os 2 caracteres antes da posição corrente ) Obs: o comando x é equivalente ao comando dl e o comando X é equivalente ao dh

Obs: o comando u ( undo ) desfaz a última operação realizada. Muito útil para o caso de apagar erradamente. Obs: o comando U refaz a linha corrente para a última situação. Obs: da mesma forma que o comando y o comando x também coloca o que foi apagado no buffer anônimo. É muito útil para mover texto de um local para outro do arquivo ( apaga e na nova posição coloca um p ) Comandos para procurar e repetir operações Comando para procurar um dado grupo de caracteres para frente ==> / Este comando procura um grupo de caracteres para frente a partir da posição em que o cursor se encontra. Se alcançar o final do arquivo continua a procura. Uso: barra seguido pelo conjunto de caracteres a ser encontrado. Este pode ser uma regular expression, que permite ao usuário procurar com maior grau de liberdade. /Petrobras - Brasil ( procura o conjunto de caracteres Petrobras - Brasil no texto ). /^CC ( procura o conjunto de caracteres CC no texto no início da linha. O símbolo ^ indica início de linha ) /^CC ( procura o conjunto de caracteres ^CC no texto. Apesar de ^ indicar início de linha, a barra invertida indica que o seu significado não deve ser levado em conta ) /de 1995$ ( procura o conjunto de caracteres de 1995 no texto no final da linha. O símbolo $ indica final de linha ) /^ *DO WHILE ( procura a linha que comece com 1 ou mais brancos e que depois tenha o conjunto de caracteres DO WHILE. O símbolo * indica zero ou mais aparições do caracter que o antecede, que neste caso é o branco ) /Capitulo. - Uso de ( procura o conjunto de caracteres Capitulo, seguido de um caracter qualquer, seguido do conjunto de caracteres - Uso de. O símbolo. indica que qualquer caracter satisfará a busca. Neste exemplo, qualquer que fosse o número do capítulo com 1 algarismo que fosse seguido por - Uso de seria encontrado ) /Capitulo [123456789] - Uso de ( procura o conjunto de caracteres Capitulo, seguido de um caracter numérico, seguido do conjunto de caracteres - Uso de. Os caracteres que estão entre colchetes são tais que, caso sejam encontrados, satisfazem a procura. Neste exemplo, o Capitulo 12 não seria aceito, pois tem mais que um caracter numérico ) /Secao [a-z] ( procura o conjunto de caracteres Secao seguido de uma letra do alfabeto. a-z significa todas as letras entre a e z. Também são válidas faixas numéricas ) / ( procura palavra terminada pelo conjunto de caracteres ndez ; O > indica fim de palavra. /test[^a] ( procura o conjunto de caracteres test que não seja seguido pela letra a. O ^ dentro do colchete indica que não é para aceitar a letra a. Obs: Quando encontra o final do arquivo o comando começa a procurar a partir do início. Nesta situação, a linha que ele mostra está posicionada no topo da tela, ao invés do meio da tela, como usual.

Obs: o comando :set ignorecase permite que as procuras sejam feitas sem considerar se as letras são maiúsculas ou minúsculas. Para desativá-lo tecle : set noignorecase Para repetir a procura basta usar o comando n. Comando para procurar um dado grupo de caracteres para trás ==>? Este comando procura um grupo de caracteres para trás a partir da posição em que o cursor se encontra. Se alcançar o final do arquivo, continua a procura. Tem a mesma sintaxe do comando anterior ( / ). Uso: interrogação seguido pelo conjunto de caracteres a ser encontrado. Este pode ser uma regular expression, que permite ao usuário procurar com maior grau de liberdade.?time ( procura a palavra TIME da posição corrente para trás ) Uma maior variedade de exemplos pode ser vista no comando / Comando para repetir procura ==> n ou N Tecle n para que a última busca efetuada seja repetida. Se teclar N a busca será repetida na direção oposta ( isto permite que retornemos rapidamente às palavras achadas anteriormente ) Comando para repetir a última alteração no texto ( inserção, eliminação, substituição etc ) ==>. O ponto repete o último comando executado que alterou algo no texto. Permite que uma operação seja repetida com facilidade. Exemplo: Se quisermos substituir a palavra mapa pela palavra seção ao longo de um texto podemos realizar o seguinte procedimento: Tecle /mapa e depois Enter. O cursor ficará sobre a palavra mapa. Tecle cw para substituir a palavra, teclando a seguir secao e um Esc para encerrar a edição. A seguir tecle n para procurar a próxima aparição de mapa e. para que esta seja substituída por secao. Teclando n. substituirá, rapidamente, cada aparição de mapa. Comandos para apagar, copiar, mover, gravar em arquivos e trazer outros arquivos ( grande número de linhas ) Os comandos desta seção começam todos por :, sendo seguidos por um endereço ( opcional ), pelo nome do comando e seus parâmetros. Comando para apagar um conjunto de linhas ==> :d :d ( elimina a linha corrente ) :5d ( elimina a quinta linha do arquivo ) : a, bd ( elimina as linhas entre a linha que foi marcada com o comando ma e a linha que foi marcada com o comando mb ) : a,.d ( elimina todas as linhas desde a linha que foi marcada com o comando ma até a linha corrente ( o ponto indica linha corrente ) ) :.-5,.+4d ( elimina da linha corrente menos 5 linhas até a linha corrente mais 4 linhas ) : a-2,.d ( elimina de 2 linhas antes da linha marcada com o comando ma até a linha corrente )

:/SUBROUTINE/,/END/d ( elimina as linhas entre a primeira aparição da palavra SUBROUTINE a partir da linha corrente, inclusive, até a primeira aparição da palavra END a partir da linha corrente, inclusive ) : c-3,/return/+5d ( elimina as linhas de 3 linhas antes da linha marcada com o comando mc até a quinta linha após a que tenha o conjunto de caracteres RETURN a partir da linha corrente ) :.,$d ( elimina todas as linhas a partir da linha corrente até a última linha do arquivo. O caracter $ indica última linha ) :1,.d ( elimina todas as linhas da primeira até a linha corrente ) :%d ( elimina todas as linhas do arquivo, equivalente a :1,$d ) Obs: O comando u desfaz o comando :d Comando para copiar um conjunto de linhas ==> :co :co. ( copia a linha corrente após a linha corrente, isto é, repete a linha. O ponto indica linha corrente ) :5co.+3 ( copia a quinta linha para a terceira linha após a posição corrente ) : a, bco/main()/ ( copia as linhas entre a linha que foi marcada com o comando ma e a linha que foi marcada com o comando mb para após a primeira aparição do conjunto de caracteres main() ) : a,.co$ ( copia todas as linhas desde a linha que foi marcada com o comando ma até a linha corrente ( o ponto indica linha corrente ) para após o final do arquivo ( o $ indica final de arquivo ) :.-5,.+4co0 ( copia da linha corrente menos 5 linhas até a linha corrente mais 4 linhas para o início do arquivo ) : a-2,.co b ( copia de 2 linhas antes da linha marcada com o comando ma até a linha corrente para após a linha marcada com o comando mb ) :/SUBROUTINE/,/END/co.-1 ( copia as linhas desde a primeira aparição da palavra SUBROUTINE a partir da linha corrente ( inclusive) até a primeira aparição da palavra END a partir da linha corrente ( inclusive) para antes da linha corrente ) : c-3,/return/+5c100 ( copia as linhas desde 3 linhas antes da linha marcada com o comando mc até a quinta linha após a que tenha o conjunto de caracteres RETURN. Estas linhas são copiadas após a centésima linha ) :.,$co$ ( copia todas as linhas a partir da linha corrente até a última linha do arquivo para posição no final do arquivo. O símbolo de dólar indica última linha ) :1,.co0 ( copia todas as linhas desde a primeira até a linha corrente para o início do arquivo ) :%co$ ( copia todas as linhas do arquivo para após o final do arquivo, equivalente a :1,$co$ ). Este comando repete todo o arquivo. Obs: o comando u desfaz o comando :co Comando para mover um conjunto de linhas ==> :m A sintaxe é equivalente à do comando anterior ( comando :co ). Todos os exemplos do comando :co são válidos ( bastando substituir o co por m ). Exemplo: :1,4m. ( move da linha 1 até a linha 4 após a linha corrente ) Obs: o comando u desfaz o comando :m Comando para gravar um conjunto de linhas em um arquivo ==> :w

O comando :w serve para salvar o arquivo atual, criar novo arquivo a partir do arquivo sendo editado, gravar sobre arquivo já existente etc. :w ( salva o arquivo que está sendo editado ) :w file.bkp ( grava o arquivo que está sendo utilizado no arquivo file.bkp. Este comando só será aceito pelo VI caso o arquivo não exista ) :w! file.bkp ( grava o arquivo que está sendo utilizado no arquivo file.bkp, mesmo que este arquivo já exista ) : a, bw! parcial.bkp ( grava desde a linha que foi marcada com o comando ma até a linha que foi marcada com o comando mb no arquivo parcial.bkp ) :wq ( salva o arquivo corrente e finaliza a execução do VI ) Obs: Os endereços que podem vir antes do caracter w seguem as mesmas regras dos comandos :d, :co e :m. Veja os exemplos do comando :d para gerar situações mais complexas. Comando para ler um arquivo externo no arquivo que está sendo editado ==> :r O comando :r serve para trazer um arquivo externo para o arquivo que está sendo editado. :r file.ext ( serve para trazer o arquivo file.ext para a linha após a posição corrente do cursor ) :0r cabecalho.txt ( serve para trazer o arquivo cabecalho.txt para após a linha zero do arquivo sendo editado, isto é, coloca o arquivo externo antes do arquivo sendo editado ) : a+4 insere.txt ( serve para trazer o arquivo insere.txt para a linha após a quarta linha que segue a marcada com o comando ma ) :r! ls *.f ( serve para trazer para a linha corrente do arquivo sendo editado o resultado do comando UNIX ls *.f, isto é, traz para o arquivo sendo editado o nome de todos os fontes Fortran no diretório atual ) Obs: O comando u desfaz o comando :r Comando para abrir outro arquivo para edição sem terminar a execução do VI ==> :e Este comando permite abrir outro arquivo para edição sem necessitar sair do VI. Além disso, permite retornar ao arquivo que estava sendo editado anteriormente sem ter de reescrever o nome novamente. :e novo.arq ( termina a edição do arquivo atual e começa a edição do arquivo novo.arq. Caso tenha alterações no arquivo que está sendo editado que ainda não tenham sido salvas, o VI não executa o comando, exigindo um ponto de exclamação após a letra e para que o arquivo atual seja abandonado sem ser salvo ) :e! novo.arq ( termina a edição do arquivo atual ( sem salvá-lo ) e começa a edição do arquivo novo.arq ) :e! ( abandona a edição do arquivo atual sem salvá-lo e o edita novamente. É uma boa solução para abandonar algum arquivo em que tenha sido cometido um erro de edição que não pôde ser consertado com o comando u ( undo ) ) :e# ( retorna a edição para o arquivo que estava sendo editado antes do arquivo atual. Este comando permite que fiquemos alternando dois arquivos em uma única edição, o que é útil para comparar arquivos diferentes ou para

ter acesso a arquivos referenciados no arquivo que está sendo editado ) :e arquivo*.f ( edita o arquivo cujo nome comece por arquivo e termine por.f. O VI só aceita este comando se houver um único arquivo que satisfaça a substituição. Caso queiramos editar mais de um arquivo simultaneamente, devemos o comando :n ) Comando para encerrar a execução do VI ==> :q ou :q! ou :wq O comando :q encerra a execução do VI. Para que o VI o execute, o arquivo já deve ter sido salvo anteriormente ou não ter sido alterado. Caso queiramos sair do VI e abandonar as alterações realizadas devemos utilizar o comando : q!. O comando :wq salva o arquivo sendo editado e sai do VI em uma única operação. Comando para abrir diversos arquivos simultaneamente para edição ==> :n ou :n! ou :N ou :N! ou :rew ou :arg O comando :n é equivalente ao :e, mas permite que sejam editados diversos arquivos, que tem seus nomes guardados em uma pilha, permitindo que passemos de um para outro. Pode ser útil quando queremos alterar uma dada palavra em todos os arquivos fonte de um projeto. Neste caso selecionaríamos os arquivos e depois os alteraríamos um a um. Exemplo: :n *.c *.f ( abre para edição o primeiro arquivo com final em.c ou em.f que for encontrado no diretório corrente e os outros ficam em uma pilha. Ver comando :e para verificar a necessidade do ponto de exclamação ) :n ( abre para edição o próximo arquivo da pilha definida em um comando como o acima ou então quando o VI foi invocado com um padrão de arquivo em que mais de 1 arquivo satisfazia ) :N ( equivalente ao comando :n, apenas procura o arquivo anterior e não o posterior ) :rew ( retorna ao primeiro arquivo da fila ) :arg ( mostra o nome de todos os arquivos da fila ) Comandos para substituir conjunto de caracteres em grande quantidade ou para identificar linhas em que aparece um dado conjunto de caracteres Comando para substituir uma sequência de caracteres por outra em uma quantidade grande de linhas ==> :s O comando :s serve para substituir um conjunto de caracteres em um arquivo. Deve ser precedido pelas linhas que queremos que sejam procuradas, pois o default é apenas a linha corrente. A seguir vem o conjunto de caracteres a ser procurado ( que pode ser uma regular expression ) precedido por uma barra e o conjunto de caracteres que substituirá ( que não pode ser uma regular expression ), também precedido por uma barra. Finalmente, caso queiramos que a alteração seja feita mais de uma vez em cada linha ( que é o que normalmente queremos ), devemos terminar o comando com /g. Recomendamos que seja lido o resumo do comando :d para maiores exemplos de uso do sistema de endereçamento do comando :s. Podemos também acrescentar a letra c ao final do comando para indicar que desejamos que o editor deve exigir confirmação para cada substituição. Quando ativamos a opção de confirmação o editor mostra cada linha em que encontrou o conjunto de caracteres e, se o usuário teclar y, faz a alteração, caso contrário pula esta substituição.

:%s/petrobras - Brasil/PETROBRAS/cg ( procura o conjunto de caracteres Petrobras - Brasil no texto em todas as linhas ( o percentual indica todas as linhas ) e o substitui por PETROBRAS. A letra c após a última barra significa que toda substituição terá de ser confirmada. A letra g ao final significa que caso apareça mais de um conjunto de caracteres em uma dada linha, todos serão substituídos ( o default é substituir apenas o primeiro ). :1,$s/Petrobras - Brasil/PETROBRAS/cg ( é equivalente ao exemplo anterior. O endereço antes do comando s indica que deve ser procurada da primeira até a última linha ( símbolo dólar significa última linha ). :.,.+5s/[a-z]/U&/g ( procura as letras minúsculas de a até z e as substitui por maiúsculas da linha corrente até a quinta linha após a linha corrente ). O caracteres U& passam para letra maiúscula o texto encontrado. Se não for colocada a letra g ao final, será substituída apenas a primeira letra de cada linha. :%s/[a-z]/l&/g ( procura as letras maiúsculas de A até Z e as substitui por minúsculas ao longo de todo o texto ). O percentual significa todas as linhas. O caracteres L& passam para letra minúscula o texto encontrado. Se não for colocada a letra g ao final, será substituída apenas a primeira letra de cada linha. :1,$s/.[ims]rf/U&/g ( procura a sequência de caracteres.irf ou.mrf ou.srf ao longo de todo o texto e os substitui pelas sequências.irf,.mrf ou.srf, respectivamente ). O símbolo de dólar indica última linha, a barra invertida indica que o caracter a seguir é o símbolo ponto, não assumindo seu significado usual de qualquer caracter. Qualquer uma das letras entre colchetes pode ser aceita ( ou a letra i ou a letra m ou a s ). O U& significa que o texto encontrado deve ser passado para letras maiúsculas e a letra g ao final indica que todas as aparições em cada linha serão convertidas ( o default é converter apenas a primeira aparição de cada linha ). :1,.s/^CC/ /g ( procura o conjunto de caracteres CC no texto no início da linha ( o símbolo ^ indica início de linha ) e o substitui por brancos. Procura em todas as linhas da linha inicial até a linha corrente ( onde está o cursor ). Caso tenha mais que um em alguma linha, substitui todos ( letra g ao final do comando ). : a, bs/^cc/cc ( procura o conjunto de caracteres ^CC no texto desde a linha anteriormente marcada com o comando ma até a linha marcada com o comando mb e o substitui por CC. Caso ocorra mais de uma vez em uma dada linha, apenas a primeira aparição será substituída, pois não foi acrescentado o /g ao final. Lembremos que a barra invertida impede que o acento circunflexo a seguir assuma o seu significado usual de início de linha ) :1,$s/de 1995$/de 1996 ( procura o conjunto de caracteres de 1995 que apareça ao final de uma linha desde a linha inicial até a linha corrente e o substitui por de 1996. O símbolo dólar no espaço para endereço indica última linha e o mesmo símbolo no conjunto de caracteres a ser encontrado indica final de uma linha). :20,.+20/^ *DO WHILE/C / ( procura a linha que comece com 1 ou mais brancos e que depois tenha o conjunto de caracteres DO WHILE e substitui por C. O símbolo * indica zero ou mais aparições do caracter que o antecede, que neste caso é o branco. A procura só é realizada da linha 20 até a linha corrente mais 20 linhas. ) :%s/ *$// ( este comando retira todos os brancos no final de cada linha. Basta

lembrar que o asterisco significa 0 ou mais aparições do caracter anterior e o dólar significa final de linha, por isso ele encontra todos os brancos no final de uma linha e os substitui por nada, eliminando-os. Obs: ver o comando / na página 4 para ter mais exemplos de buscas e o comando :d na página 5 para mais exemplos de endereços. Obs: o comando u desfaz a operação de substituição realizada anteriormente. Comando que mostra na tela todas as ocorrências de um determinado caracter ==> :g/conjunto_de_ caracteres/p ou :g/conjunto_ de_ caracteres/nu O comando :g procura um conjunto de caracteres e, ao encontrar, executa um outro comando. Os principais comandos que podem ser executados são: impressão das linhas em que encontrou o caracter ( p ou nu ), substituição de caracteres ( s ), procura de outros caracteres ( comando / ou? ). Neste documento vou analisá-los um a um, ao invés de mostrar de uma vez o comando :g. O comando :g, ao contrário do comando :s, tem como default procurar em todas as linhas do arquivo. Caso queiramos restringir a busca devemos informar o endereço da linha inicial e da final separadas por vírgula antes da letra g. A seguir, deve ser informada a sequência de caracteres a ser procurada ( que pode ser uma regular expression ) precedido por uma barra e, finalmente, uma nova barra e a letra p, para mostrar as linhas aonde foi encontrada a sequência de caracteres ou nu para mostrá-las precedidas pelo número da linha. Recomendamos que seja lido o comando :d para maiores exemplos de uso do sistema de endereçamento. Recomendamos também que seja estudado o comando / para maiores esclarecimentos sobre padrões de busca de sequência de caracteres. :g/subroutine/nu ( procura todas as linhas com a palavra SUBROUTINE e as mostra na tela precedidas pelo número ) :1,500g/^[cC]/p ( procura todas as linhas começadas pelas letras c ou C entre a linha 1 e a linha 500 e as mostra na tela ). O acento circunflexo significa início de linha. :.,$g/end *$/nu ( procura todas as linhas que terminem pela palavra END, seguida ou não de brancos, da linha atual até a última linha ). O asterisco indica zero ou mais repetições do caracter que o antecede, neste caso o caracter branco. O símbolo do dólar indica final de linha. Comando que mostra na tela ocorrências de uma determinada sequência de caracteres que precede ou antecede uma outra sequência de caracteres ==> : g/string1/?string2?/p ou :g/string1//string2//p ou :g/string1/?string2?/nu ou : g/string1//string2//nu O comando :g procura um conjunto de caracteres e, ao encontrar, executa um outro comando. Os principais comandos que podem ser executados são: impressão das linhas em que encontrou o caracter ( p ou nu ), substituição de caracteres ( s ), procura de outros caracteres ( comando / ou? ). O comando :g tem como default procurar em todas as linhas do arquivo. Caso queiramos restringir a busca devemos informar o endereço da linha inicial e da final separadas por vírgula antes da letra g. A seguir, deve ser informada a sequência de caracteres a ser procurada ( que pode ser uma regular expression ) precedido por uma barra e, finalmente, uma nova barra e a outra sequência de caracteres que antecede ou precede a anteriormente

encontrada. Caso queiramos uma busca para trás, colocar um sinal de interrogação antes e depois da última sequência, caso contrário, colocar uma barra ao invés da interrogação. Finalmente, colocar outra barra e a letra p ( para mostrar as linhas com a segunda sequência de caracteres sem número da linha ) ou nu ( equivalente ao p, mostrando adicionalmente o número da linha ). Recomendamos que seja lido o comando :d para maiores exemplos de uso do sistema de endereçamento. Recomendamos também que seja estudado o comando / para maiores esclarecimentos sobre padrões de busca de sequência de caracteres. Os exemplos abaixo mostram a utilidade deste comando. :g/vazao = /?SUBROUTINE?/nu ( procura todas as linhas com a sequência VAZAO = e, achando, procura para trás a ocorrência mais próxima da palavra SUBROUTINE e a mostra na tela precedida pelo número da linha ). Este exemplo serve para identificar em um programa Fortran o nome das subrotinas em que a variável vazão foi alterada. :.,$g/*perf *123 //TIME//p ( procura todas as linhas com a sequência *PERF 123 ( sendo que o número de brancos entre o PERF e o 123 é qualquer ) e, achando, procura para frente a ocorrência mais próxima da palavra TIME e a mostra na tela sem ser precedida pelo número ). Este exemplo serve para identificar em um arquivo de dados de um simulador todas as datas em que foram feitas alterações na completação de um dado poço. A barra invertida indica que o caracter que a segue deve utilizado literalmente. O caracter asterisco, quando não precedido pela barra invertida, indica zero ou mais ocorrências do caracter anterior, neste caso o branco. Ver o comando / ou o comando :s para saber como definir uma sequência de caracteres mais abrangente ( por exemplo: considerando brancos, início de linha, final de linha etc ). Comando para substituir uma sequência de caracteres por outra em uma quantidade grande de linhas ==> :g/conjunto_de_caracteres/s//novo_conjunto O comando :g procura um conjunto de caracteres e, ao encontrar, executa um outro comando. Os principais comandos que podem ser executados são: impressão das linhas em que encontrou o caracter ( p ou nu ), substituição de caracteres ( s ), procura de outros caracteres ( comando / ou? ). O comando :g tem como default procurar em todas as linhas do arquivo, ao contrário do comando :s. Não vemos necessidade de utilizar esta forma de substituir ao invés do comando :s diretamente. De toda forma o seu uso é muito similar. Após a sequência a ser procurada inserir o comando s como já foi explicado, omitindo apenas a sequência a ser substituída. Recomendamos ver o comando :s para maiores exemplos de uso. :g/petrobras/s//petrobras/gp ( substitui todas as ocorrências da palavra Petrobras pela palavra PETROBRAS ). Como não foi informado endereço antes do comando g, o editor assume que deve procurar em todas as linhas. A letra g ao final indica que pode ser substituída mais de uma ocorrência da palavra em cada linha. A letra p ao final indica que devem ser mostradas na tela todas as linhas em foram feitas alterações. Observe que se usarmos a letra p ao final do comando :s só aparecerá a última linha alterada. Esta é uma vantagem do uso do comando :g ao invés do :s.

Comandos para adaptar o editor aos gostos pessoais e outros comandos Os comandos :set são utilizados para adaptar o editor ao gosto pessoal dos usuários. São diversos os comandos e citaremos os que julgamos mais úteis. Comando para verificar todas as opções existentes e seus valores atuais ==> :set all Este comando lista todas as opções existentes e os valores atuais. Para alterá-los basta teclar o comando :set seguido pela nova opção desejada. O prefixo no desativa uma opção e a sua retirada ativa. Ver próximos comandos como exemplos. Comando para que a busca de sequências de caracteres não leve em conta se uma letra é maiúscula ou minúscula ==> :set ignorecase O seu uso permite que as buscas com a barra, o ponto de interrogação, o comando :g ou o comando :s não leve em conta se uma letra é maiúscula ou minúscula. Para desativar esta opção use :set noignorecase Comando para alterar o número de caracteres de tabulação ==> :set tabstop=8 Altera o número de caracteres para tabulação com a tecla Tab. O default é de 8 caracteres. Não recomendamos alterar este valor, pois em outras edições com o VI o comprimento retornará ao default e tudo ficará desalinhado. Além disso, os compiladores usam o comprimento default e, no caso do Fortran, uma alteração na coluna pode causar sérios problemas. Recomendamos que nos programas Fortran e nos arquivos de dados de programas quaisquer seja evitado o uso de tabulações, pois podem causar problemas pelo desajuste das colunas ( no caso do Fortran ) ou porque a caracter de tabulação não é reconhecido pelo programa. Ver comando :set list para identificar sinais de tabulação e comando :set autotab para inserção automática de sinais de tabulação. Comando que mostra se está em modo de inserção ==> :set showmode Se este comando estiver ativado, mostra à direita da última linha da tela uma mensagem que indica se o editor está em modo de inserção ou não. Aconselhamos o seu uso, pois muitas vezes é difícil indentificar o modo do editor ( modo de comando ou modo de inserção ). Para desativar esta opção usar o comando :set noshowmode. Comando que, ao inserir uma linha, coloca o cursor na mesma coluna que o primeiro caracter da linha anterior ==> :set autoindent Este comando é útil quando se está programando, pois as linhas novas iniciam na mesma coluna que a linha anterior, reduzindo o trabalho de identação. Deve ser ativado junto com o comando :set noautotab caso queiramos que os brancos inseridos não contenham sinais de tabulação. Ver discussão do comando :set tabstop para maiores detalhes. Comando que permite que os brancos inseridos pelo editor contenham sinais de tabulação ==> :set autotab Este comando deve ser utilizado junto com o comando :set autoindent quando queremos que os brancos inseridos contenham símbolos de tabulação.

Recomendamos que esta opção seja desativada quando se tratar de arquivos com dados para programas pois os sinais de tabulação podem não ser compreendidos. A desativação é feita pelo comando :set noautotab. Ver comandos :set tabstop e :set list para definir tamanho da tabulação e identificar os símbolos de tabulação, respectivamente. Comando que permite visualizar os símbolos de tabulação e final de linha em um arquivo ==> :set list Este comando é útil quando temos arquivos que não estão sendo interpretados corretamente por programas e não identificamos nenhum problema. Muitas vezes, ocorre que um símbolo de tabulação no arquivo faz com que o programa tenha problema ao encontrá-lo no lugar dos brancos esperados. Como a tabulação não se distingue dos brancos no modo usual de edição, é necessário identificá-la. Outras vezes temos brancos ao final da linha que não são necessários ou são insuficientes. Quando o comando :set list é ativado aparecem na tela o símbolo de tabulação na forma de um ^I e a marca de final de linha como um $. Para desativar a opção utilizar o comando :set nolist Comando que faz com que o editor informe o número de linhas eliminadas ou que foram para um buffer a cada operação ==> :set report=número Este comando faz com que o editor mostre na parte inferior da tela uma emensagem a cada vez que um número maior que o número especificado de linhas for apagada ou colocada em algum buffer. Isto dá maior segurança ao usuário sobre as operações realizadas. Número tem de ser maior ou igual que 1. Comando para que cada linha seja precedida pelo seu número de ordem ==> :set number Este comando faz com que antes de cada linha apareça o seu número de ordem ( estes números não fazem parte do arquivo ). Esta opção é útil para identificar linhas pelo seu número, permitindo fácil manuseio em operações como :d, :co, :m, :s etc. Para os usuários mais acostumados com o editor, cremos que a sua ativação não representa um aumento de produtividade, devido às diversas outras opções que servem para identificar o intervalo de linhas em que os comandos devem atuar. Para desativá-la utilizar o comando : set nonumber O comando CtrlG ( teclas Ctrl e g apertadas simultaneamente ) fornece o total de linhas do arquivo e o número da linha corrente sem ativar a opção de numeração de linhas. Comando para associar uma letra a um comando ==> :map letra comando Este comando permite que utilizemos uma letra para realizar uma sequência de comandos de VI. Pode ser bastante útil para realizar operações repetitivas. A letra que segue o comando :map perderá a sua função usual no VI e assumirá a função que programamos. Recomendo que sejam utilizadas as letras v e V, que não utilizadas pelo editor. Se no comando quisermos utilizar o Enter ou o Esc devemos precedê-lo com a sequência Ctrlv ( teclas Ctrl e v apertadas simultaneamente ). Isto evita que o editor interprete o Enter ou Esc como final do comando :map. Para exemplificar o seu uso vamos propor um problema: Suponha que queiramos alterar o nome de todos os arquivos terminados em

.f do diretório corrente para nome idêntico, apenas acrescido de.old. Caso o número de arquivos fosse grande seria complexo realizar esta operação arquivo a arquivo. Podemos usar o VI para gerar um script que poderá ser executado e realizará a tarefa automaticamente. A sequência a ser adotada seria: :r!ls *.f ( traz para o arquivo sendo editado todos os arquivos do diretório corrente que terminem com.f ) :map v ^imv CtrlvEsclyW$a CtrlvEscp$a.oldCtrlvEscj^ ( este comando, apesar de parecer excessivamente complexo não o é, desde que o usuário tenha bastante com o editor. Vejamos como interpretá-lo: O acento circunflexo inicial manda o cursor para a primeira coluna da linha atual, a letra i a seguir significa o início de uma inserção, neste caso inserimos as letras mv seguidas de um branco. Ctrlv significa que as teclas Ctrl e v devem ser apertadas simultaneamente e serve para evitar que a tecla Esc a seguir seja interpretada pelo VI como final do comando :map. Neste caso, o Esc indica final da inserção no texto. Nesta altura teríamos a linha original precedida por mv. A letra l a seguir posiciona o cursor uma coluna à direita, o yw coloca no buffer a próxima palavra, que neste caso é o nome do arquivo a ser renomeado. O símbolo de dólar significa que o cursor deve ser posicionado ao final do arquivo e a letra a indica inserção de texto, que neste caso é um caracter branco seguido pelo CtrlvEsc, da mesma forma que foi feito anteriormente. Nesta altura temos a linha precedida por mv e com o nome do arquivo repetido e separado por um caracter em branco. Resta acrescentar ao final o sufixo.old, que é feito de forma similar ao que já descrevemos através do símbolo $ seguido pela letra a, pelo.old e, para encerrar a inserção, CtrlvEsc. Finalmente, para facilitar o trabalho podemos posicionar o cursor no início da linha seguinte através da letra j seguida do acento circunflexo. Quando terminamos de editar o comando devemos teclar o Enter para que o VI aceite o mapeamento e, feito isso, teclar a letra v sobre a linha que desejamos alterar. ) Caso queira testar este exemplo recomendamos que inicie sem mapear a letra v, apenas tecle comando a comando e verifique o que ocorre. Não esqueça de substituir os CtrlvEsc por Esc, pois o Ctrlv só é necessário para que o comando :map não seja encerrado prematuramente por um Enter ou Esc. Comando para executar como uma sequência de comandos o conteúdo de um buffer com nome ==> @nome_do_buffer Pode ser usado para executar uma sequência de comandos do editor. Tem vantagem sobre o comando :map porque permite que corrijamos eventuais enganos com mais facilidade. A idéia básica consiste em colocar um conjunto de linhas em um buffer com nome e, a seguir, executá-lo. Para executá--lo basta teclar o símbolo @ seguido do nome do buffer. Vamos utilizar o mesmo exemplo do comando :map para mostrar a semelhança. O procedimento a ser adotado é o seguinte: Insira uma linha com o comando ^imv CtrlvEsclyW$a CtrlvEscp$a.oldCtrlvEscj^ ( ver exemplo do comando :map ). Feito isto, utilize o comando zyy para colocar a linha no buffer z. Depois posicione o cursor no local aonde será realizada a alteração e tecle o comando @z. Isto equivaleria a mapear a tecla v e dar o comando v a seguir. A vantagem da execução por macros ( comando @ seguido pela letra que identifica o buffer ) é a facilidade de correção caso ocorra algo de errado, pois basta alterar a linha já editada,

colocá-la novamente no buffer e tornar a executar. Caso o usuário deseje que alguns dos comandos acima sejam executados a cada vez que o editor VI for chamado, isto pode ser realizado utilizando o seguinte procedimento: 1 - Teclar, em UNIX o comando env. Aparecerá na tela uma sequência de nomes seguidos do sinal de igual. Caso exista EXINIT=comando.diferente.de.branco, anote este comando. Na nossa instalação atual aparece EXINIT=set directory=/scratch/vi ( isto para que a área em que o vi grava suas informações fique neste diretório ). Quando isto acontece, a opção de ativação automática de um arquivo para configurar o VI antes de cada execução não é mais válida. Neste caso, o usuário deve editar o arquivo.profile no diretório principal e acrescentar a linha EXINIT= após a linha PATH=... Isto permite que o arquivo de configurações se torne ativo pois a variável EXINIT foi desativada. 2 - Editar o arquivo.exrc no diretório principal do usuário. Caso tenha retirado o set directory=/scratch/vi inclua-o como primeira linha do arquivo, pois é importante. A seguir inclua todas as opções e mapeamentos que julgar importantes. São válidos todos os comando de VI, sendo um em cada linha. Um exemplo de arquivo seria: set directory=/scratch/vi set ignorecase set report=1 set showmode map g G A única novidade seria o mapeamento da letra g ( minúscula ) como sendo a letra G (maiúscula ). Isto é útil pois o g não tem função no VI e a maiúscula serve para ir para linhas. Isto facilita o uso do editor ao tornar as duas equivalentes. Sempre que for editar um arquivo com o VI, o editor antes executará o arquivo.exrc, configurando o ambiente da forma desejada. Recomendações para as situações críticas O editor permite em muitas situações corrigir enganos cometidos. Os principais comandos para estes casos são: Comando para desfazer a última operação realizada ==> u Este permite desfazer a última operação realizada, seja uma eliminação de linhas, uma substituição de palavras, uma edição etc. No entanto, apenas a última operação pode ser desfeita. Comando para colocar a linha corrente da forma que estava anteriormente ==> U Serve para retornar a linha à situação em que estava antes de um comando de inserção ou alteração. Comando para trazer linhas que foram apagadas anteriormente ==> 1p ou 2p etc Permite que linhas que foram apagadas anteriormente sejam recuperadas. Todas as linhas apagadas são colocadas em uma pilha de armazenamento com 10 posições. Para trazer de volta a última linha apagada deve-se colocar aspas seguidas do número 1 e da letra p ( caso queiramos que fique

posicionada após a linha corrente ) ou da letra P ( para anteceder a linha corrente ) ( 1p ou 1P respectivamente ). De forma análoga, para trazer as linhas da penúltima operação de eliminação deve-se utilizar o comando 2p ( ou 2P ). O valor máximo para o número que indica a posição é 9. Comando para abandonar a edição do arquivo atual e retornar à situação em que estava anteriormente ==> :e! Este comando abandona a edição do arquivo atual e carrega novamente o arquivo. É equivalente a sair do VI abandonando ( :q! ) e editar novamente o arquivo atual. Ivo Fernandez Lopez

Comandos do Editor VI Data: Quinta, março 24 @ 04:47:45 BRST Tópico: Documentação Material retirado do site http://underlinux.com.br/modules.php?name=news&file=print&sid=4358 Por: Thiago Germano Beier Este artigo ensina os comandos mais importantes para a correta utilizacao do VI como seu editor de texto, de maneira eficiente e rapida. Qualquer duvida, por favor, entre em contato. MODO TEXTO Subcomandos de inserção de texto: i - insere texto antes do cursor r - insere texto no início da linha onde se encontra o cursor a - insere texto depois do cursor A - insere texto no fim da linha onde se encontra o cursor o - adiciona linha acima da linha corrente o - adiciona linha abaixo da linha corrente Ctrl + h - apaga ultimo caracter Ctrl + w - apaga ultima palavra minúscula ESC - passa para o modo comando MODO COMANDO: Subcomandos para Movimentação pelo Texto: Ctrl + f - passa para a tela seguinte Ctrl + b - passa para a tela anterior H - move o cursor para a primeira linha da tela M - move o cursor para o meio da tela L - move o cursor para a última linha da tela h - move o cursor para caracter a esquerda j - move o cursor para a linha abaixo k - move o cursor para alinha acima l - move o cursor para o caracter a direita w - move cursor para início da próxima palavra (ignora pontuação) W - move cursor para inicio da próxima palavra (não ignora pontuação) b - move cursor para inicio da palavra anterior (ignora pontuação) B - move cursor para inicio da palavra anterior (não ignora pontuação) 0 (zero_ - move cursor para inicio da linha corrente

^ - move cursor para o primeiro caracter não branco da linha $ - move cursor para o fim da linha corrente ng - move para a linha G G - move para a última linha do arquivo Subcomandos para a localizacao de TEXTO: /palavra - procura pela palavra ou caracter acima ou abaixo do texto?palavra - move para a ocorrência anterior da palavra (para repetir a busca usar n) n - repete o ultimo / ou? comando N - repete o ultimo / ou? comando na direção reversa Ctrl + g - mostra o nome do arquivo, o numero da linha corrente e o total de linhas Subcomandos para alteração de TEXTO: x - deleta um caracter que esta sobre o cursor dw - deleta a palavra, do inicio da posição do cursor ate o fim dd - deleta a linha inteira onde o cursor estiver D - deleta a linha a partir da posição do cursor em diante rx - substitui o caracter sob o sursor pelo especificado x (e opcional indicar o caracter) Rtexto - substitui o texto corrente pelo texto indicado (opcional indicar o texto adicionado) cw - substitui a palavra corrente. Pode-se inserir o novo conteúdo da palavra automaticamente. cc - substitui a linha corrente. Pode-se inserir o novo conteúdo da linha automaticamente. C - substitui restante da linha corrente. Pode-se inserir o texto logo após o comando u - desfaz a ultima modificação U - desfaz todas as modificações J - une a linha corrente a próxima S:/velho/novo - substitui a primeira ocorrência de velho por novo Subcomandos para salvar o TEXTO: :wq - salvar as mudanças feitas no arquivo e sai do editor :w :wq! :q - sai do editor. Se as mudanças não foram salvas é apresentada mensagem de advertência. :q! - sai do editor sem salvar as mudanças realizadas