Vim
O Vim é o editor de texto via terminal mais popular entre desenvolvedores e usuários que adoram o terminal Unix. Apesar de já existirem vários materiais de referência, vou descrever aqui um resumo dos principais comandos.
O Open Vim é um site bem legal que mostra de forma interativa os comandos do Vim.
Os sites Vim Cheat Sheet pt-br e VIM - Cartão de Referência são uma boa referência para os comandos do Vim.
Abrindo
vim arquivo.txtPara abrir um arquivo existente com o cursor no final do arquivo digite
vim arquivo.txt +Salvando e Saindo
Para salvar do arquivo basta digitar
:w
Para sair digite
:q
Salvar e sair
:wq
Sair sem salvar
:q!
Modo de inserção
O Vim funciona da seguinte forma:
Modo normal é o modo inicial do Vim onde você digita os comandos.
Modo de edição é onde você digita o texto.
Para entrar no modo de edição digite um dos comandos a seguir.
Para sair do modo de edição e voltar para o modo normal pressione ESC.
Edição
i . insere antes do cursor
a . insere depois do cursor
I . insere no início da linha
A . insere no fim da linha
o . abre nova linha abaixo da linha atual
O . abre nova linha acima da linha atual
Movimentos básicos
gg . começo do arquivo
G . final do arquivo
0 . começo da linha
^ . vai para primeiro caractere não espaço da linha
$ . final da linha
:10 . vai para a décima linha
Busca e substituição
| comando | funcionalidade |
|---|---|
/texto |
procura a frente |
n |
repete a última busca a frente |
N |
repete a última busca atrás |
:set ic |
ignora maiúsculas e minúsculas |
:%s/antigo/novo/g |
substitui texto |
Movimento de linha
ddkP . movimenta uma linha para cima
ddp . movimenta uma linha para baixo
Copiar e colar
yy . copiar
p . colar
Deletar
dd . deleta a linha atual
5dd . deleta 5 linhas abaixo
:10d . deleta a linha número 10
Multi-janela
C é Ctrl
C-Ws ou :split[Enter] . divide janela em duas horizontal
C-Wv ou :vsplit[Enter] . divide janela em duas vertical
C-Ww . alterna entre as janelas
C-Wq . fecha a janela atual
Numerar as linhas
:%s/^/\=printf('%-4d', line('.'))
ou
:%s/^/\=line('.').". "/
ou
:%!nl -ba
ou
:%!nl -ba -nrz -w6
ou fora do vim
sed -n "/pattern/{=;p}" arquivo
ou
sed -n "/*/{=;p}" arquivo.txt | sed "{N;s/\n/ /}" > arquivo2.txt
ou
cat -n arquivo.txt > arquivo2.txt
ou
awk '{printf("%5d: %s\n", NR,$0)}' arquivo.txt > arquivo2.txt
Configurações
Para mostrar as linhas numeradas no Vim digite
:set nu
Para mostrar o highlight do seu código digite
:syntax on
Personalizando o Vim com vimrc
Na sua pasta ~ ou home/ crie um arquivo chamado .vimrc.
vim ~/.vimrcDentro dele você pode configurar o Vim da forma que quiser. Por exemplo, baseado em VIM and Python - a Match Made in Heaven e Full Stack Python eu vou configurar o Vim para Python usando recomendações do PEP8.
Tem também o Vim Bootstrap.
" numera as linhas
set nu
" mostrar o highlight
syntax on
filetype indent plugin on
" habilita auto-indentação
set autoindent
" define a tabulação em 4 espaços
set ts=4
set softtabstop=4
" define tamanho da linha de texto
set textwidth=79
" converte tabulação em espaços
set expandtab
" mostra uma linha no cursor
set cursorline
" formato do arquivo
set fileformat=unix
" destacando uma coluna
set cc=80Plugins
Não vou explorar muito os plugins mas um que eu gostei bastante foi o NerdTree.
Depois de instalado você pode digitar :NERDTree que aparecerá uma janela lateral com os arquivos da pasta atual.
O comando o abre o arquivo.
https://github.com/junegunn/vim-plug
https://github.com/terryma/vim-multiple-cursors#installation
.vimrc
call plug#begin('~/.vim/plugged')
Plug 'https://github.com/terryma/vim-multiple-cursors'
" Add plugins to &runtimepath
call plug#end()
" Default mapping
let g:multi_cursor_next_key='<C-n>'
let g:multi_cursor_prev_key='<C-p>'
let g:multi_cursor_skip_key='<C-x>'
let g:multi_cursor_quit_key='<Esc>'Atalho
C-n, c
Referências