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.txt
Para 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 ~/.vimrc
Dentro 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=80
Plugins
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