Skip to content

Instantly share code, notes, and snippets.

@aalvesjr
Created October 16, 2011 06:37
Show Gist options
  • Save aalvesjr/1290585 to your computer and use it in GitHub Desktop.
Save aalvesjr/1290585 to your computer and use it in GitHub Desktop.
Comandos VIM
vim
vim [opções] [arquivo]
São algumas das opções deste aplicativo
-b : permite editar arquivo binário.
-h : exibe opções do aplicativo.
+n : inicializa o cursor na n-ésima linha.
-r : recupera a última versão do arquivo (o arquivo estava sendo editado quando o vim foi encerrado de forma não normal, por exemplo, devido a falta de energia elétrica).
-R : abre arquivo apenas para leitura.
Observações
O vim (VI Improvement) é uma melhoria do antigo editor de texto vi. Este por sua vez é uma melhoria do editor de texto orientado a linha chamado ed. Existe também uma versão do vim para ambiente X chamada gvim.
O vim possui três formas de trabalho: modo de linha, modo de edição e modo de comandos. A mudança de um modo para outro modo é feita através do uso da tecla Esc.
Após o arquivo ser aberto pelo vim, o modo de comandos é ativado. No modo de comandos, as teclas digitadas pelo usuário são interpretadas pelo vim como ações a serem executadas dentro do arquivo aberto. No modo de edição, as teclas digitadas pelo usuário são ecoadas na tela. Para entrar neste modo, pode-se digitar, por exemplo, "a" (adicionar), "i" (incluir),etc. No modo de linha, o usuário define ações a serem executadas no arquivo como um todo (por exemplo, salvar, substituir caracteres, sair do aplicativo, etc). Para entrar neste modo, deve-se digitar ":".
São alguns dos comandos do vim no modo de comandos
0 : mover o cursor para o início da linha em que o cursor está posicionado.
a : inserir texto após a posição atual do cursor.
A : inserir texto no final da linha atual.
dd : deletar linha atual.
[n]+dd : deletar n linhas a partir da linha atual.
G : ir para o fim do arquivo.
[n]+G : ir para a n-ésima linha do arquivo.
h : voltar um caractere.
H : ir para a primeira linha exibida na tela atual.
i : inserir texto a partir da posição atual do cursor.
I : inserir texto no início da linha atual.
j : descer uma linha.
J : juntar a linha atual com a linha seguinte.
[n]+J : juntar n linhas consecutivas a partir da linha atual.
k : subir uma linha.
l : avançar um caractere.
L : ir para a última linha exibida na tela atual.
n : procurar, a partir da posição atual do cursor, a próxima ocorrência do texto definido no último comando /.
N : procurar, a partir da posição atual do cursor e indo em direção ao início do arquivo, a próxima ocorrência do texto definido no último comando /.
o : inserir uma linha em branco após a linha atual.
O : inserir uma linha em branco acima da linha atual.
p : inserir linhas copiadas após a linha atual.
P : inserir linhas copiadas antes da linha atual.
r : substituir o caractere atual.
R : substituir um conjunto de caracteres.
s : deletar o caractere atual e inserir texto.
S : apagar linha e inserir novo texto na linha.
u : desfazer a última alteração feita no texto e ainda não desfeita.
U : desfazer a última alteração feita no texto.
x : apagar caractere onde o cursor está posicionado.
$ : mover o cursor para o fim da linha em que o cursor está posicionado.
[n]+y : copiar n linhas a partir da linha atual.
yy : copiar a linha atual.
[n]+Y : copiar n linhas a partir da linha atual.
YY : copiar a linha atual.
CTRL+B : voltar uma página.
CTRL+F : avançar uma página.
F1 : exibir tela de ajuda.
[n]+ENTER : ir para n linhas abaixo da linha atual.
[n]+. : repetir o último comando que alterou o texto n vezes a partir da posição atual do cursor.
[n]+~+ENTER : inverter a caixa (case) dos n caracteres seguintes ao cursor.
/texto : procurar pela primeira ocorrência do texto especificado a partir da posição atual do cursor.
São alguns dos comandos do vim no modo de linha
:r arquivo : incluir arquivo a partir da linha atual do cursor.
:q+ENTER : sair da tela de ajuda.
:q! : sair do vim sem salvar as alterações.
:w arquivo : salvar arquivo com o nome especificado.
:wq : sair do vim salvando as alterações.
:X : criptografa o arquivo.
fonte: http://www.uniriotec.br/~morganna/guia/vim.html
-------------------------------------------------------------------------------------
100 Comandos do Vim que todo programador deveria saber
Busca
/palavra: Procura por "palavra" do início para o fim
?palavra: Procura por "palavra" do fim para o início
/Mari[oa]: Procura por "Mario" ou "Maria"
/\<pal: Procura por expressões que começem com "pala" como, "palavra" ou "palíndromo"
/ismo\>: Procura por expressões que terminem com "ismo" como, "autismo"
/\<para\>: Procura pela palavra "para"
/\<...\>: Procura por todas as palavras com 3 letras
/maria\|joao: Procura por maria ou joao
/\<\d\d\d\d\>: Procura exatamente por 4 dígitos numéricos
/^\n\{3}: Procura por três linhas em branco
:bufdo /palavra/: Procura "palavra" em todos os arquivos abertos
Substituição
:%s/antigo/novo/g: Substitui todas as ocorrências de "antigo" por "novo" no arquivo
:%s/antigo/novo/gw: Substitui todas as ocorrências com confirmação
:2,35s/antigo/novo/g: Substitui todas as ocorrências entre as linhas 2 e 35
:5,$s/antigo/novo/g: Substitui todas as ocorrências da linha 5 até EOF (fim da linha)
:%s/^/legal/g: Substitui o começo de cada linha com "legal"
:%s/$/Oh/g: Substitui o fim de cada linha por "Oh"
:%s/antigo/novo/gi: Substitui "antigo" por "novo" desconsiderando maíusculas e/ou minúsculas
:%s/ *$//g: Apaga todos os espaços em branco
:g/palavra/d: Apaga todas as linhas contendo "palavra"
:v/palavra/d: Apaga todas as linhas que não contém "palavra"
:s/maria/joao/: Substitui a primeira ocorrência de "maria" por "joao" na linha corrente
:s/maria/joao/g: Substitui todas as ocorrências de "maria" por "joao" na linha corrente
:%s/maria/joao/g: Substitui "maria" por "joao" em todo o arquivo
:%s/\r//g: Apaga retornos de carro do windows (\n)
:%s/\r/\r/g: Transforma os retornos de carro do windows (\n) em retornos do Linux (\r)
:%s#<[^>]\+>##g: Apaga tags HTML mas mantêm o texto
:%s/^\(.*\)\n\1$/\1/: Apaga linhas repetidas
Ctrl+a: Incrementa o número sob o cursor
Ctrl+x: Decrementa o número sob o cursor
ggVGg?: Muda o texto usando Rot13
Minúsculo/Maiúsculo
Vu: Torna todos os caracteres da linha minúsculos
VU: Torna todos os caracteres da linha maiúsculos
g~~: Inverte os caracteres do texto inteiro
vEU: Coloca as letras da palavra em maiúsculas
vE~~: Inverte os caracteres da palavra selecionada
ggguG: Coloca todo o texto em minúsculas
:set ignorecase: Ignora minúsculos/maiúsculos nas buscas
:set smartcase: Ignora minúsculos/maiúsculos em buscas exceto quando uma letra msiúscula é usada
:%s/\<./\u&/g: Coloca a primeira letra de cada palavra em maiúscula
:%s/\<./\l&/g: Coloca a primeira letra de cada palavra em minúscula
:%s/.*/\u&: Coloca a primeira letra de cada linha em maiúscula
:%s/.*/\l&: Coloca a primeira letra de cada linha em minúscula
Lendo/Gravando arquivos
:1,10 w arquivo: Salva as linhas de 1 a 10 em "arquivo"
:1,10 w >> arquivo: Adiciona as linhas de 1 a 10 em "Arquivo"
:r arquivo: Insere o conteúdo de "arquivo" no atual
:23r arquivo: Insere o conteúdo de "arquivo" a partir da linha 23
Explorando arquivos
:e .: Abre o gerenciador de arquivos integrado do Vim
:Sex: Divide a janela e abre o gerenciador de arquivos integrado
:browse e: Abre o gerenciador de arquivos integrado na janela corrente
:ls: Lista os buffers carregados
:cd ..: Move para a pasta superior
:args: Lista os arquivos
:args *.php: Abre lista de arquivos
:grep expressao *.php: retorna uma lista de arquivos .php que contenham a expressão informada
gf: Abre o arquivo sob o cursor
Interação com o Linux
:!pwd: Executa o comando "pwd" e retorna para o Vim
!!pwd: Executa o comando "pwd" e insere a saída no buffer
:sh: Retorna temporariamente para o shell
exit: Retorna para o Vim
Alinhamento
:%!fmt: Alinha todas as linhas
!}fmt: Alinha todas as linhas a partir da posição corrente
5!!fmt: Alinha as próximas 5 linhas
Abas
:tabnew: Cria uma nova aba
gt: Mostra a próxima aba
:tabfirst: Mostra a primeira aba
:tablast: Mostra a última aba
:tabm n(posicao): Reorganiza as abas
:tabdo %s/foo/bar/g: Executa um comando em todas as abas
:tab ball: Coloca todos os arquivos abertos em abas
Divisão da janela do Vim
:e arquivo: Edita "arquivo" na janela corrente
:split arquivo: Divide a janela e abre "arquivo"
ctrl-w "seta para cima": Coloca o cursor na janela do topo
ctrl-w ctrl-w: Coloca o cursor na próxima janela
ctrl-w_: Maximiza a janela corrente
ctrl-w=: Coloca todas as janelas com o mesmo tamanho
10 ctrl-w+: Adiciona 10 linhas de tamanho na janela corrente
:vsplit arquivo: Divide a janela verticalmente
:sview arquivo: O mesmo que split, mas em modo somente-leitura
:hide: Fecha a janela corrente
:only: Fecha todas as janelas, exceto a janela atual
:b 2: Abre #2 na janela corrente
Auto-completion do texto
Ctrl+n Ctrl+p (em modo de inserção): Completa palavra
Ctrl+x Ctrl+l: Completa linha
:set dictionary=dict: Define dict como o dicionário atual
Ctrl+x Ctrl+k: Completa usando o dicionário
Marcações
mk: Marca a posição corrente como k
‘k: Move o cursor para a marca k
d’k: Apaga tudo até a marca k
Abreviações
:ab email [email protected]: Define email como abreviação de [email protected]
Identação de Texto
:set autoindent: Liga a identação automática
:set smartindent: Liga a identação inteligente
:set shiftwidth=4: Define o tamanho da identação em 4 espaços
ctrl-t, ctrl-d: Identa/Deidenta no modo de inserção
>>: Identa
<<: Deidenta
Marcação de sintaxe
:syntax on: Liga a marcação de sintaxe
:syntax off: Desliga a marcação de sintaxe
:set syntax=perl: Força a usar a marcação de sintaxe do perl
fonte:http://www.tocadoelfo.com.br/2009/06/99-comandos-do-vim-que-todo-programador_15.html
-------------------------------------------------------------------------------------
@ditexen
Copy link

ditexen commented Jun 14, 2018

fdisk -lu

@arnaldogranato
Copy link

Show, só faltou comentar se quiser deixar fixo algo, criar um arquivo .vimrc no seu home com as opções default

@laurianops
Copy link

Show, só faltou comentar se quiser deixar fixo algo, criar um arquivo .vimrc no seu home com as opções default

indico adicionar no global,
por que o .vimrc no $HOME, só funcionará para o usuário padrao.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment