Fala galera! Segue um guia com os principais comandos do nosso querido editor Vim (a maioria dos comandos serve também para o VI). Lembrando também que este guia cobre com sobra todo conteúdo cobrado no item 103.8 – Edição básica de arquivos com o VI (LPIC-1 exame 101).
Então chega de papo e vamos lá.
Abrindo o Editor Vim.
vim => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação.
vim arquivo => Abre o arquivo de nome “arquivo”.
vim arquivo + => Abre o arquivo de nome “arquivo”, com o cursor no final do mesmo.
vim arquivo +10 => Abre o arquivo de nome “arquivo”, com o cursor na linha 10.
vim arquivo +/Fulano => Abre o arquivo de nome “arquivo”, na primeira ocorrência da palavra “Fulano”.
Modo de comando
Ao executar o vim, ele inicia diretamente em modo de comando. Neste modo você não conseguirá digitar nada no texto, apenas navegar sobre o mesmo ou entrar com algum comando como veremos mais adiante.
Vejamos algumas das principais teclas de movimentação sobre o conteúdo do arquivo no modo de comando:
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”
(susbstitua n pelo número da linha).
gg = Mome o cursor para a primeira linha do arquivo.
G => Move o cursor para a última linha do arquivo.
Modo de inserção
Para começar a escrever, pressione “i” em seu teclado. O vim entra em modo de inserção, que você comprova pelo rodapé da tela, onde fica a seguinte marcação:
– – — INSERT —
Teclas para inserção de texto:
i=> insere o texto antes do cursor.
I=> insere o texto no início da linha
a=> insere o texto após o cursor.
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
Pressione a tecla ESC para voltar em modo de comandos
Salvando e/ou saindo do arquivo
Estando no modo de comando, digite estas combinações para o fim desejado:
:w => Salva o arquivo que está sendo editado no momento.
:q => Sai.
:wq => Salva e sai.
“:x” (sem aspas) => Salva e sai
ZZ => Idem.
:w! => Salva forçado.
:q! => Sai forçado.
:wq! => Salva e sai forçado.
Desfazendo e refazendo 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
Shift+u => Desfaz todas as modificações feitas no arquivo.
Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.
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.
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 5 linhas a partir da posição do atual do cursor (qualquer número).
:A,Bd => Deleta da linha A até a linha B e copia para a área de transferência.
Ctrl + h => Apaga último caracter à esquerda (no modo de inserção)
cc => Apaga a linha atual e copia para a área de transferência.
cNc => Apaga N linhas e copia para a área de transferência.
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.
Np => Cola N vezes o conteúdo da área de transferência.
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.
:10,20s/^/# => Insere o caracter # no início (^) das linhas 10 a 20
:10,20s/^#/ => Remove o primeiro carater nas linhas 10 a 20
:% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha.
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.
cursorline => Exibe uma linha onde o cursor se encontra.
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 => Mú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.
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).
Modo visual do vim
Entre no modo visual: v
Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione “y para copiar” ou “u” para recortar 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$
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:
1) Pressionando o botão direito do mouse;
2) Pressionando o botão direito + botão esquerdo juntos;
3) Pressionando o botão do meio do mouse (mouse de 3 botões);
Observação: Lembre-se que o vim deve estar no modo de inserção.
Comandos mais comuns
:e arquivo – abre o arquivo
:e. – abre o diretorio atual para selecionar um arquivo
:Vex – abre uma janela vertical para selecionar um novo arquivo a ser editado
Ctrl+w seguido de v – abre uma janela vertical
Ctrl+w seguido de s – abre uma janela horizontal
Ctrl+w seguido de n – abre uma nova janela horizontal
:ce – alinhamento centralizado
:ri – alinhamento a direita
:le – alinhamento a esquerda
:new – abre nova janela
:n ou :next – vai para próximo arquivo (quando utilizado vim file1 file2)
:prev ou :previous – vai para arquivo anterior (quando utilizado vim file1 file2)
:split – divide a janela atual em duas
:split arquivo – abre o arquivo em nova janela
Ctrl+w+k – ir para janela superior
Ctrl+w+j – ir para janela inferior
Ctrl+w Ctrl+w -alternar entre janelas
:! – Permite executar um comando do shell e retorna ao vim (Ex: :!ls = executa o comando ls e retorna ao vim)
:.! – Executa um comando no shell e insere a saída no vim abaixo do cursor (Ex: :.!ls = executa o comando ls e intere a saida no vim)
:r! – Executa um comando no shell e insere a saída no vim acima do cursor (Ex: :r!ls = executa o comando ls e intere a saida no vim)
:quit ou :q – Fecha
:quit! ou :q! – Fecha sem gravar
:w – Salva o arquivo
:w arquivo – salvar arquivo como
:wq – Salva e fecha
:exit ou “:x” (sem aspas) – Fecha e grava se necessário
:help – ajuda do VI
Para aproveitar ao máximo o potencial do vim adicione ao final do arquivo algumas opções. Exemplo:
vim /etc/vim/vimrc
syntax on
set nu
set hlsearch
set ic
set cursorline
Veja também:
# man vim
# vim -h
# info vim
Veja o comando vintutor, um ótimo guia via terminal
# vimtutor
# cat /usr/share/vim/vim80/tutor/tutor.pt.utf-8
ou para ver em PDF
# libreoffice –convert-to pdf /usr/share/vim/vim80/tutor/tutor.pt.utf-8
Referências:
http://www.infowester.com/linuxvi.php
http://www.vivaolinux.com.br/artigo/Desvendando-o-editor-Vim
Livro: Certificação Linux – Uirá Ribeiro
É isso aí pessoal, espero que gostem. Não se esqueçam de deixar seus comentários e se você souber de mais alguma dica e quiser compartilhar conosco é só colocar aqui no comentário que logo colocaremos sua dica neste artigo.
Abraço!
TutorLinux
obrigado por compartilhar.
Uma das melhores publicações que achei na internet. Valeu por compartilhar amigo!