Você está na página 1de 18

Tutoriais/Aplicativos/VIM-1

Criando e Editando Arquivos no VI


Introdução
O sistema operacional GNU/Linux, assim como qualquer outro UNIX, possui todos os arquivos de
configuração em formato texto, diferentemente de outros sistemas operacionais que armazenam
suas configurações em arquivos binários. Isso possui várias vantagens, entre elas a de ser fácil de
modificar para corrigir erros eventuais e são de difícil corrompimento pois são simplesmente textos.
Ao se deparar com a necessidade de alterar algum desses arquivos, você pode utilizar editores bem
completos como o jed, XEmacs, ou um mais simples como o gedit e até o joe, mas nenhum desses
editores se compara ao Vi em termos de denominador comum. O Vi existe em qualquer distribuição
de Linux e está disponível em qualquer emergência (sabe quando o sistema não inicializa por algum
motivo e você tem que editar o lilo.conf ou o modules.conf?).
Levando em consideração esse fato, torna-se indispensável conhecer o Vi, pelo menos seu uso
básico, apesar deste editor possuir variantes muito mais completas que indicaremos mais para
frente.
O Vi foi originalmente criado pelo residente da Sun, Bill Joy, a partir do ed, quando ele ainda
estudava em Stanford.
Vi é um editor de textos ASCII poderoso e muito usado na interface de caracter (terminal) do Linux
para edição de arquivos e programas. O uso do vi não é muito intuitivo, à primeira vista, mas a
edição simples de textos pode ser feita usando poucos comandos. O programa que realmente se usa
nas distribuições modernas e principais do Linux é na realidade o vim (vi improved),
indistintamente chamado de vi.
O vi tem dois modos: o modo de operação e o modo de inserção. No modo de operação o vi espera
comandos do teclado. No modo de inserção, tudo que for digitado é encarado como texto a ser
inserido. Para entrar no modo de operação, basta digitar ESC. O vi sempre abre nesse modo. Para
entrar no modo de inserção, basta digitar a tecla INSERT nos PCs.
"vi" é a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi
criado (começo da década de 80), não era comum existirem editores de textos como nos dias de
hoje. Naquela época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado
o vim (Vi IMitator), um clone fiel ao vi, porém com muitas outras funcionalidades, que só foram
sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi
melhorado).
O vim é um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um
link simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que
executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm
algumas diferenças. O que você verá abaixo fala sobre o vim.
O vim é um editor de textos muito poderoso, ele pode: abrir vários arquivos ao mesmo tempo,
possui sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto,
uso de expressões regulares, sintaxe colorida, e muito mais. Ele não é exclusivo do Unix, ou seja,
pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.
Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em
pleno funcionamento, o que muda é apenas o modo gráfico mesmo.
O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção,
comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais:
- Modo de Edição - Modo de Comando.

O Editor VI
Pode ser descrito como vantagem, a instalação de todo e qualquer UNIX / Linux existentes no
mercado.
Como desvantagem podemos descrever sua interface pobre e com comandos enigmáticos.
Trabalha em dois modos:
• Modo de comandos
• Modo de edição
As configurações do Linux podem ser feitas em interfaces gráficas de utilitários, e em interfaces
texto através de arquivos de configuração; neste caso, é fundamental ao administrador o domínio de
um aditor de textos. Apesar do editor vi ser extremamente pobre em recursos de edição, ele é
extremamente útil justamente por estar presente em todas as distribuições UNIX / Linux.

Modo de comando
Utilizado sempre que se quiser interagir com o editor de textos de forma a passar instruções
relativas ao texto. Tudo que for passado pro vi no modo de comando sempre será entendido como
comando e nunca como dados.

Modo de edição
Modo utilizado na criação do texto ou edição do mesmo. Mesmo comandos válidos serão
entendidos como dados se forem passados nesse modo. É o modo para escrever o texto (conteúdo)
do arquivo, isto é, as teclas digitadas serão inseridas no arquivo.
Para entrar no modo de edição, é preciso ter dado um comando de edição, por exemplo, i ou a.
Para sair do modo de edição, e voltar ao modo de comandos, basta pressionar a tecla ESC.
Um fota muito importante com relação a editores de texto é lembrar que, no sistema UNIX / Linux,
o final da linha é marcado apenas com um caractere LF (Line-Feed), enquanto que em sistemas
Windows o final da linha é marcado com a seqüência de caracteres CR-LF (Carriage Return-Line
Feed).
Outros editores: mcedit, kedit, kwrite, pico, emac
Teclas de alternância entre os modos
esc - alterna do modo de edição para o modo de comando. insert, a, i - alterna do modo de comando
para o modo de edição.
Para criar um novo arquivo texto, basta digitar vi na linha de comandos do shell. Para abrir um
arquivo existente, basta digitar vi nome_do_arquivo.
$ vi

ou
$ vi arquivo
Toda vez que o vi é acionado, ele começa no modo de comandos. Pelo modo de comandos é
possível navegar pelo arquivo, procurar palavras (ou frases), substituir, apagar, copiar, etc...
Para entrar no modo de edição, é preciso dar algum comando de edição para o vi. A forma mais
comum é dar o comando de inserção (i de insert) ou de edição ( a de append).
Comando vi Descrição do modo apresentando na tela, funções e informações

Comando insert Passa para o modo de edição, notar informação na parte inferior da tela.

Principais comandos do vi (somente no modo de comando)


h, j, k, l esquerda, acima, abaixo, direita (movimentação)

^B, ^F página acima, página abaixo

i, a inserir, acrescentar

x, dw, dd remove caracter, palavra, linha

Y, P copiar, colar linha

/ buscar palavra no texto. posiciona o cursor diretamente na palavra

especificada como critério de buscar

:/ posiciona o cursor no inicio da linha que conté m a palavra specificada como

critério de busca.

/ da continuidade a última busca executada (+enter)

:w, :q, :q!, :w! Salvar, sair do vi, sair sem salvar, força gravação (usado

arquivo somente leitura)

w - salva alterações no conteúdo do arquivo (write)

q - sai do aplicativo (quit)

! - força a execução do comando

:wq, ZZ salva e sai do vi (:qw não pode ser executado porque não pode-se sair do

arquivo e depois salvar)

:x salvar e sair

:args mostra o nome dos arquivos abertos

:next, :next! exibe o próximo arquivo aberto

:previous, :previous! Exibe o arquivo anterior aberto

:split abre duas interfaces do vi independentes

dd apaga n linhas

yy copia n linhas

tecla somente no modo de edição


Comando nativos Linux
shift + PageUp deslocamento de tela shift + PageDown deslocamento de tela

O vi quando é finalizado sem sair do programa é criado um arquivo com extensão .swp
:args (utilizado para visualizar os arquivos abertos numa mesma sessão)

:next, :next! (visualizar o próximo arquivo) (não salva o arquivo)

:previous, :previous! (visualizar a arquivo anterior) (não salva o arquivo)

comandos que serão utilizados numa situação de sessão compartilhada entre arquivos do vi.
Sessão compartilhada entre diversos arquivos:
split abre uma outra sessão ou terminal do vi permitindo o gerenciamento de um outro
arquivo em paralelo. As sessões abertas a partir do comando :split são absolutamente
independentes.

Ctrl + ww (navega entre as sessões ou terminais abertos do vi através do comando :split

Metacaracteres
. |

+ |

* | busca ----------------- filtragem de exibição

? |

[ ] | pesquisa ------------- dentro de um conteúdo (arquivo) especificado

| filtragem de análise dentro de um arquivo

^ | Ex.: grep

$ |

exemplo de busca:

ls c* (busca arquivos que comecem com a letra c)

exemplo de pesquisa:
grep -E

Usando o VI
Modo de Edição
No modo de edição, você pode digitar a vontade como se fosse um editor de textos comum. Esse
modo é iniciado no editor a partir do shell digitando-se vi entra-se no editor através de um dos
seguintes comandos:
i : insere texto a partir do cursor atual

a : insere texto depois do cursor atual

I : insere texto no início da linha

A : insere texto no final da linha

s : substitui texto no cursor atual

S : substitui texto depois do cursor atual

o : abre uma linha abaixo do cursor atual

Modo de Comando
No modo de comando, você pode executar comandos. O modo de comando começa quando se
aperta a tecla ESC. Alguns desses comandos são: substituição, inserção e procura de texto, gravação
e abertura de arquivos entre outros, além de recorte, cópia e colagem de texto.
Os comandos mais usados são:
/Expressão: Procura Expressão (que pode ser qualquer palavra) no texto

n : Procura próxima ocorrência de Expressão no texto

N : Procura ocorrência anterior de Expressão no texto

Yy : Copia linha atual do texto para memória

p : Cola conteúdo da memória no texto

dd : Apaga linha atual (e coloca na memória)

n comando : Um número n (1, 2, ...) seguido de qualquer comando executa o

comando n vezes

u : Desfaz última ação executada

. : Refaz última ação executada

:n : Pula para linha de número n

:w : Salva o arquivo atual

:wq : Salva o arquivo atual e sai do Vi

:x : Salva o arquivo atual e sai do Vi (equivalente) a :wq

:q : Sai do Vi

:q! : Sai do Vi , independe de salvar o conteúdo atual

:w arquivo : Salva o arquivo atual com o nome arquivo


Edição simples de arquivos
1. Digite o comando vi 2. Aperte a tecla INSERT para digitar o texto 3. Mova o cursor com as setas
de posição 4. Ao terminar a digitação aperte a tecla ESC

O sinal de mais "+" indica teclas pressionadas simultaneamente. A vírgula indica que as teclas
devem ser digitadas em seqüência.

Ação Comando

Arquivo
Abrir :e arquivo

Salvar :w

Salvar como :w arquivo

Salvar e sair :wq

Sair sem salvar :q!

Editar
Marcar texto para copiar ou cortar v, setas direção

Copiar texto marcado y

Cortar texto marcado c

Colar p

Deletar para frente (DEL) x

Deletar para trás (BACKSPACE) SHIFT+x

Localiza texto para frente /texto

Localiza novamente /

Localiza texto para trás ?texto

Localiza novamente ?

Desfazer u

Refazer CTRL+r

Formatar
Alinhamento Centralizado :ce

Alinhamento à direta :ri

Alinhamento à esquerda :le


Janela
Abrir nova janela :new

Dividir a janela atual em duas :split

Abrir arquivo em nova janela :split arquivo

Ir para janela de cima CTRL+w, k

Ir para janela de baixo CTRL+w, j

Ajuda

help

Modo de inserção e de comandos


Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela. Agora, vamos à prática.
Para executar o vim, utilize:
$ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação.

$ vi arquivo => Abre o arquivo de nome "arquivo".

$ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do

mesmo.

$ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10.

$ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrência

da palavra "Copag".

Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na
última linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever
nada, pode digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione "i" em seu
teclado. O vim entra em modo de inserção, que você comprova (como falado anteriormente) pelo
rodapé da tela, onde fica a seguinte marcação:
- - -- INSERT --

Lembre que utilizando o "i" para inserção, a mesma se inicia inserindo texto antes do cursor. Veja
agora outros subcomandos de inserção de texto:
A => Insere o texto no fim da linha onde se encontra o cursor

o => Adiciona uma linha vazia abaixo da linha corrente

O => Adiciona uma linha vazia acima da linha corrente

Ctrl + h => Apaga último caracter à esquerda


Voltando ao modo de comando:
Veja agora 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 linha abaixo.

k => Move o cursor para linha acima.

l => Move o cursor para caracter a direita.

w => Move o cursor para o início da próxima palavra (não ignorando a pontuação).

W => Move o cursor para o início da próxima palavra (ignorando a pontuação).

b => Move o cursor para o início da palavra anterior (não ignorando a

pontuação).

B => Move o cursor para o início da palavra anterior (ignorando a pontuação).

0 (zero) => Move o cursor para o início da linha corrente.

^ => Move o cursor para o primeiro caracter não branco da linha.

$ => Move o cursor para o fim da linha corrente.

nG => Move o cursor para a linha de número "n"

(substitua n pelo número da linha)..

G => Move o cursor para a última linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse


Selecione o texto necessário com o botão esquerdo do mouse. Quando você for colar, saiba que o
texto será colado a partir de onde se encontra o cursor (esse que aparece, às vezes piscando e às
vezes não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode
utilizar uma dessas opções: •Pressionando o botão direito do mouse; •Pressionando o botão direito +
botão esquerdo juntos; •Pressionando o botão do meio do mouse (mouse de 3 botões);
Obs.: Lembre-se que o vim deve estar no modo de inserção.
Usando o modo visual do vim Entre no modo visual: v Agora, utilize as teclas direcionais (setas) do
teclado, para selecionar o texto desejado. Pressione e cole, utilizando a tecla "p" (paste).
Veja agora como apagar um determinado texto:
Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e
pressionando a tecla Delete. Você pode remover até o final de uma palavra, utilizando: dw Pode
também remover até o final de uma frase: d$

Desfazendo uma ação


É claro que você pode desfazer uma ação que você considera errado, ou que errou ao digitar o texto.
É só utilizar: u Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.

Subcomandos para localização 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 use

"n").

n => Repete o último comando utilizando / ou ?.

N => Repete o último comando / ou ? ao contrário (baixo para cima).

Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de

linhas.

Mais opções para remoção de caracteres


x => Apaga o caracter onde o cursor estiver.

dd => Apaga a linha inteira onde o cursor estive

D => Apaga a linha a partir da posição do cursor até o fim.

J => Une a linha corrente à próxima.

:5dd => Removeas próximas 7 linhas a partir da posição do atual do cursor

(qualquer número).

Mais para copiar e colar


:yy => Copia a linha onde o cursor se encontra.

:5yy => Copia as próximas 5 linhas a partir da posição atual do cursor.

:p => Cola o que foi copiado na linha abaixo do cursor atual.

Opções para substituição de textos


rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter

especificado em CARACTER.

RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe).


cw => Remove a palavra corrente para substituição.

cc => Remove a linha corrente para substituição.

C => Substitui o restante da linha corrente, esperando o texto logo após o

comando.

J => Une a linha corrente à próxima.

:s/velho/novo => Substitui a primeira ocorrência de "velho" por "novo" na linha

corrente.

:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de

"velho" por "novo" em cada linha.

:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências

de "velho" por "novo".

:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada

substituição.

:% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed.

:% s/./u&/gc => Converte para maiúsculas (u) o primeiro caracter (.) de cada

linha.

Abreviações
:ab => Mostra todas as abbr.

:abc[lear] => Remove todos.

:iab => Apenas para modo de inserção.

:iabc[lear] => Tira todos de inserção.

:cab => Apenas p/modo de comando ( : ).

:cabc[lear] => Tira todos os modos de comando.

:una vc => Tira ab para vc.

Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação.

Porém, Ctrl+] também pode ser usado, para expandir sem adicionar caracteres.

Opções para o comando SET


:set

autowrite aw => Salva a cada alteração.


backspace bs => Comportamento backspace (1 ou 2).

errorbell eb => Campainha de erro.

expandtab et => Troca tab por espacos.

fileformat=dos ff => Converte o arquivo para DOS.

hidden hid => Preserva o buffer.

hlsearch hls => Elumina a última procura.

ignorecase ic => Case insensitive na busca.

incsearch is => Ilumina procura enquanto digita.

laststatus=2 => Mostra linha de estado.

lazyredraw lz => Não redesenha em macros.

lines=N => Número de linhas na tela.

magic => Usar mágicas na procura de padrões.

number nu => Mostra núm da linha.

report=N => Mostra aviso quando N linhas mudaram (0=sempre).

showcmd => Mostra o comando que se está fazendo.

showmatch sm => Mostra o casamento de {},[],().

smartcase scs => Assume "noic" quando tiver maiúsculas.

textwidth=N => Quebra de linha do texto.

undolevels ul=N => Guarde os N últimos comandos para desfazer (padrão=1000).

vb t_vb= => Retira o "beep" de erro.

Agora invertendo maiúsculas/minúsculas


5~ => Inverte os 5 próximos caracteres.

g~$ => Inverte todos os caracteres até o fim da linha.

seleciona, u => Converte para minúsculas.

seleciona, U => Converte para maiúsculas.

seleciona, ~ => Inverte.

Observação: Onde está escrito "seleciona", é para fazer utilizando o modo visual (v).
Agora veja como definir coluna de quebra de linha (problema que eu tive quando iniciei no
aprendizado do vim):
:set textwidth=N
Se você já estiver num arquivo pronto:

:set wm=5 => O número 5 aqui são as colunas que serão "cortadas".

gqG => Até o final do arquivo.

Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl": É claro que é segurando Ctrl + .
No modo de COMANDO:
A => Incrementa um número (Add)

X => Decrementa um número

S => ScrollLock

L => Redesenha tela

V => Modo visual (Visual Vertical)

G => Status do arquivo

M => Início da próxima linha

E => Linha abaixo sem mover cursor

Y => Linha acima sem mover cursor

N => Próxima linha (Next)

P => Linha anterior (Previous)

F => PageDown (Forward)

B => PageUp (Backyard)

U => PageUp / 2 (Up)

D => PageDown / 2 (Down)

Agora, no modo de INSERÇÃO:


A => Insere o último texto inserido

I => TAB

S => ScrollLock

H => BackSpace

T => 2 tab's no início da linha (Two Tabs)

V => Anula expansão do próximo caractere

J => Enter - quebra de linha

M => Enter - quebra de linha

L => Redesenha tela

R => Insere conteúdo do registrador [a-z] (Veja abaixo)


K => Insere um dígrafo (Veja abaixo)

N => Procura palavra no texto atual (Next)

P => Procura palavra no texto atual (Previous)

Y => Copia caractere que está acima (Yank)

Veja os caracteres especiais:

ga => Mostra o código da letra sobre o cursor.

:dig => Mostra todos os dígrafos disponíveis (tabela).

Exemplos: Para fazer um º, use Ctrl+K,-,o ("Ctrl"+"K"+"-"+"o"). Para fazer um ½, use Ctrl+K,1,2
("Ctrl"+"K"+"1"+"2").

Trabalhando com arquivos e janelas múltiplas


Você pode abrir múltiplos arquivos, por exemplo:
$ vim arquivo1 arquivo2

E pode alternar entre as janelas. Veja:


:wn => Grava o atual e vai ao próximo.

:wN => Grava o atual e vai ao anterior.

:args => Mostra todos os arquivos atuais.

:qa => Sai de todas as janelas de uma vez.

:all => Abre todos os arquivos em janelas individuais.

Tecla chave das janelas = Crtl+W

j, seta abaixo => Move para janela abaixo.

k, seta acima => Move para janela acima.

o => Apenas esta janela, fecha todas as outras (Only).

+, - => Muda o tamanho da janela.

= => Deixa todas as janelas com tamanhos iguais.

Os registradores
"[a-z] => Use o registrador [a-z] para o próximo delete, cópia ou cola.

:reg => Mostra o conteúdo de todos os registradores.

:reg [a-z] => Mostra o conteúdo do registradores [a-z].

Observação: O [a-z] pode ser: 0-9a-z%#:.-=" Marcas:


m[a-z] => Marca em [a-z] a posição corrente do cursor.

`[a-z] => Vai até a marca [a-z].

`` => Vai até a posição anterior ao último pulo (alterna).

:marks => Mostra as marcas ativas.

Fazendo gravação de seqüência de comandos

q[a-z] => Inicia a gravação de uma seqüência no registrador [a-z].

q[A-Z] => Inicia a gravação, adicionando no registrador [a-z].

q => Pára a gravação.

@[a-z] => Executa a seqüência do registrador [a-z] (5 vezes? 5@a)

Dica: Pode-se colocar o @[a-z] dentro da própria gravação do q[a-z]! Assim ele é executado
recursivamente. Muito útil quando há uma procura de padrões na gravação. faz para todas as
ocorrências.

Mapeamentos
:map :r!date => Mapeamento em modo de comando.

:imap :r!date => Mapeamento em modo de inserção.

:cmap r!date => Mapeamento em modo linha de comando.

:vmap :r!date => Mapeamento em modo visual.

Exemplos:

"html: negrito no trecho selecionado

:vmap d`pa # html: negrito no trecho selecionado

"liga/desliga autoIndent

:map ,si :set ai!:echo "autoIndent="&ai

"mostrar os espaços em branco no fim das linhas

:map / *$^M

Através dos mapeamentos é possível "encurtar" comandos, ou seja, abreviá-los. Conheça as


sintaxes:
Comment => Ciano

Constant => Roxo

Identifier => Ciano


PreProc => Azul escuro

Special => Vermelho

Statement => Amarelo

String => Roxo

Type => Verde

Todo => Preto, fundo marrom

Error => Branco, fundo vermelho

Ignore => Preto, fundo preto! - esconde

Utilizando o recurso de expandtab


Mas, o que isso faz? Transforma todos os TABs em espaços. Podemos ativar dentro do próprio vim,
utilizando o comando:
:set expandtab

Para desabilitar:
:set noexpandtab

Podemos colocar também no arquivo ~/.vimrc a seguinte linha: set expandtab O arquivo ~/.vimrc
pode ser usado para muitas configurações, e essa é uma delas. Existe ainda o arquivo ~/.exrc, mas
não entraremos em detalhes.
Podemos incluir a saída de um comando no vim, utilizando:
:r!comando

Por exemplo:
:r!rpm -q kernel

Incluiria o seguinte resultado, dentro do seu texto (isso na minha máquina):


kernel-2.4.18-3

Dicas diversas do vim:


:xit => Igual :wq, mas só grava se tiver sido alterado algo no arquivo.

:map N_ARQ ^R=expand("%:t:r")^M

Imprime no arquivo o próprio nome do arquivo editado quando N_ARQ é digitado.

Agora, veja como alinhar o texto:

:left

:right

:center
E para fazer uma busca de 2 palavras ao mesmo tempo:

/palavra1|palavra2

O vim é um editor de textos com centenas de opções, comandos, strings... Enão dá para abordar
tudo aqui. Por isso, a melhor maneira de conhecê-lo a fundo é usando-o.

Subcomandos do editor VI
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 - salva o arquivo corrente com o nome especificado. Continua edição

normalmente

:wq! - salva (de modo forcado) o arquivo corrente no arquivo especificado

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

Um abraço e até a próxima...

Você também pode gostar