Editando arquivos com Vim

O Vim é um editor muito poderoso, mas muitos não sabem como utilizar suas funções básicas, nem seus comandos.
Nesse vídeo vamos ver como este editor é flexível e altamente personalizável.

Aqui está o arquivo de configuração vimrc que eu uso. Esta versão já desabilita modelines para evitar uso de exploit de versões não atualizadas do Vim.

" Opções Básicas de Edição do Vim
runtime! debian.vim " Executa o script para programas que usam o Vim em distros Debian Like
syntax on " Habilita o recurso de Syntaxe para identificar conteudo nos arquivos
set showcmd " Mostra (parcialmente) o status dos comandos
set showmatch " Mostra o fechamento de { ( [ .
set ignorecase " Faz o Vim tratar maiúsculas e minúsculas sem diferença (case insensitive)
set smartcase " Faz busca inteligente
set incsearch " Faz busca incremental
set autowrite " Salva automaticamente antes de comandos como :next e :make
"set hidden " Esconde os buffers quando eles sao abandonados
"set mouse=a " Habilita o uso do mouse (todos os modos) em terminais
set nomomde " Desabilita o uso de modelines
set ruler " habilita a régua (mostrar linha e coluna no canto inferior direito)
set bg=dark " Coloca o fundo (background) escuro, melhora o uso do vim no modo gráfico por exemplo.
set number " habilita a numeração das linhas
set hls " Grifa o resultado da busca
set wildmode=longest,list " Para completar com TAB igualzinho o bash faz (Use CTRL+P para completar)
set hlg=pt " Idioma preferido para buscar ajuda
set ul=500 " máximo de mudanças que podem ser desfeitas
set ai " Habilita a autoindentação
" F2 Para 'ocultar' e F3 voltar os comentarios do arquivo atual
noremap <F2> :hi Comment ctermfg=black guifg=black<cr>
noremap <F3> :hi Comment term=bold ctermfg=cyan guifg=cyan<cr>
" Alterna entre janelas sem sair do modo insercao (depois do :split)
map <F4> <esc><c-w><c-w>
" Aperte F5 e a tela fica embaralhada e F5 para voltar ao normal"
map <F5> ggVGg?
" Procura a primeira linha vazia e comeca a editar
map <F6> gg/^$<cr>i#
" Remove espaços redundantes no fim das linhas com F7
map <F7> <esc>mz:%s/\s\+$//g<cr>`z
" Retira os ^M que ficam no final de arquivos salvos pelo windows. Aperte F8 e suma com eles.
map <F8> :%s/\r//g
" Cria o cabecalho padrao para shell script
map <F9> ggO#!/bin/bash
\<c-o>:r!echo %<cr># <c-o>o
\# Versao: <c-o>o
\# Script para:<c-o>o
\# Autor: Vagner Fonseca<cr>
" Abreviações para quando a tecla CAPS LOCK estiver ativada."
cab W w | cab Q q | cab Wq wq | cab wQ wq | cab WQ wq
" Função que fecha automaticamente { ( [, ao escrevê-los o vim fecha automaticamente.
imap { {}<left>
imap ( ()<left>
imap [ []<left>
" Salva os arquivos .sh com permissao de escrita
au BufWritePost *.sh !chmod +x %
" DiffApaga: apagar uma entrada num arquivao DIFF
"map ,di :.,/diff -[uNr]/-d<cr>
" HtmlSyntaxe: carregar uma sintaxe HTML alternativa
"map ,hs :so ~/.vim/synload.vim<cr>:so ~/.vim/html.vim<cr>
" HtmlData: atualiza data no fim do arquivo HTML
"map ,hd G:?^$<cr>O<pre><cr>--<cr>
" \¤D ¤U<esc>:r!echo ${PWD\#*/html}/%<cr>kJxo</pre>
" Busca colorida em verde
hi Search ctermbg=green ctermfg=black
hi IncSearch ctermbg=black ctermfg=cyan
" Ruler e cursor sempre em branco
hi StatusLine ctermfg=white
" Faz os resultados da busca aparecerem no meio da tela
nmap n nzz
nmap N Nzz
nmap * *zz
nmap # #zz
nmap g* g*zz
nmap g# g#zz
"Arquivos .sh sao sempre bash, e não sh
au FileType sh let b:is_bash=1
" Palavras-chave para destacar em qualquer tipo de arquivo
syn case ignore
syn keyword p_c vagner fonseca Vagner Fonseca
hi p_c ctermbg=white ctermfg=black
" Mail: Configuracoes especiais para arquivos de email
au FileType Mail set fo=ctq tw=65 et
" Man: Paginas de manual sao na verdade textos em NROFF
au BufNewFile,BufRead *.man set ft=nroff
" TXT: Arquivos texto tem tratamento especial
au BufNewFile,BufRead *.txt set tw=75 ts=8 ft=txt "spell
au BufNewFile,BufRead *README,*NEWS,*TODO set ft=txt "spell
" Python: TAB colorido e outras configuracoes
au FileType python set ts=8 tw=80 noet
au FileType python syn match pythonTAB '\t\+'
au FileType python hi pythonTAB ctermbg=blue
"au FileType python set list listchars=tab:··
au FileType python hi pythonString ctermfg=lightgreen
au FileType python hi pythonRawString ctermfg=lightgreen
" Makefile: ele adora usar linhas compridas malas
au BufNewFile,BufRead Makefile set tw=0
" Mgp: mudando algumas cores na sintaxe do MagicPoint
au FileType mgp hi mgpFile ctermfg=darkcyan
au FileType mgp hi mgpCommand ctermfg=yellow

Não se esqueça de se inscrever no meu canal do Youtube nem de me seguir no Instagram.

Entre no nosso grupo do Telegram e vamos falar muito sobre Linux.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *