Meu Vimrc personalizado!

Alan Victor Quarta, 24 de Junho de 2015


Como prometido no post anterior Guia básico de referência VIM, nesse post vou mostrar alguns plugins e atalhos que eu utilizo no meu vimrc junto com um script shell de instalação.

Os plugins, configurações e cores que utilizo em meu vimrc foram baseados no material de Evaldo Junior então resolvi compartilhar alguns plugins legais, minhas configurações de maps e algumas modificações.

Preparando

# Baixe o tar.gz dos plugins
wget http://consultalinux.org/sources/vim.tar.gz

# Baixe o script de instalação:
wget http://consultalinux.org/sources/vim_install.sh

# Baixe o meu vimrc
wget http://consultalinux.org/sources/vimrc

# Após baixar o pacote vim.tar.gz e o script de instalação vim_install.sh, execute:
chmod +x vim_install.sh && ./vim_install.sh

# Após a conclusão de instalação, copie o meu vimrc para ~/.vim/
cp vimrc ~/.vim/

 

Abaixo o meu vimrc comentado

 

" vimrc
" Alan Victor M. Leite
" Inspirado no vimrc e blundles de InFog - Evaldo Junior <evaldojuniorbento@gmail.com>
"
set nocompatible
" Aceita movimentacao/remocao completa com backspace ou del
set backspace=2
"set modelines=0

" Detecta o tipo de arquivo off
filetype off

" Map da tag <leader>
let mapleader="."

" Estou usando o Vundle para gerenciar os bundles
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" Plugin 'shawncplus/phpcomplete.vim'

" Melhora os temas para terminais
Bundle 'godlygeek/csapprox'

" Exibe os espaços em branco no final de linhas
Bundle 'bronson/vim-trailing-whitespace'

" Esquemas de cores
Bundle 'altercation/vim-colors-solarized'
Bundle 'spf13/vim-colors'
Bundle 'baskerville/bubblegum'
Bundle 'jnurmine/Zenburn'

" Airline: Linha de status bem completa
Bundle 'bling/vim-airline'
"let g:airline_theme='zenburn'
"let g:airline_powerline_fonts=0
"let g:airline_detect_paste=1
"let g:airline#extensions#branch#enabled=1
"let g:airline#extensions#syntastic#enabled=1

" Matchmaker: Destaca as palavras iguais
Bundle 'qstrahl/vim-matchmaker'
let g:matchmaker_enable_startup = 1

"###################### php
" Tagbar para mostrar as tags do arquivo (depende do exuberant-ctags)
Bundle 'majutsushi/tagbar'
let g:tagbar_autoclose=1
let g:tagbar_autofocus=1
let g:tagbar_compact=1
let g:tagbar_show_linenumbers=2 "Relative
" PHPtagbar: depois de instalar, rodar o make: cd ~/.vim/bundle/tagbar-phpctags.vim && make
Bundle 'vim-php/tagbar-phpctags.vim'
nnoremap <leader>l :TagbarToggle<CR>

" PDV: Facilita a adição de Docblocks no PHP
Bundle 'vim-scripts/PDV--phpDocumentor-for-Vim'
nnoremap <leader>doc :call PhpDocSingle()<CR>
vnoremap <leader>doc :call PhpDocRange()<CR>

" Syntastic: Verifica sintaxe e exibe erros
Bundle 'scrooloose/syntastic'
let g:syntastic_php_checkers=['php']
let g:syntastic_python_checkers=['pep8', 'pylint']
let g:syntastic_python_pep8_args='--ignore=E501'
" Exemplo
" let g:syntastic_php_checkers=['php', 'phpcs', 'phpmd']


"###############################  CONFIGURAÇÔES ###################################
syntax enable       " Habilita a marcação de sintaxe
" Persistent undo
if has('persistent_undo')
    set undodir=~/.vimundo      " Diretório de gravação do undo
    set undofile                " desfazer persistente
    set undolevels=1000         " número de alterações para desfazer
    set undoreload=10000        " número de linhas do undo no reload de um buffer
endif

set nobackup
set noswapfile      " Eu não uso os arquivos de swap e backup...
set hidden          " Pode esconder buffers não salvos.
set encoding=utf-8  " Codificacao utf8
set showmode        " Exibe o modo atual
set wildmenu        " Menu com as opções do vim usando tab
set background=dark " Define o fundo preto (É melhor usar isso com a sintaxe)
set nu              " Mostra o número de linhas
set noai              "Nao Faz o auto tab/auto indent
set ts=8            " tab vale 4 espaços
set sw=8            " tab com 4 espaços
"set softtabstop=8   " Operações como o backspace também com 4 espaços
"set et              " Troca tabs por espaços
set ruler           " Mostra a posição do cursor
set cursorline      " Destaca a linha atual
set laststatus=2    " Sempre exibe a barra de status
set clipboard=unnamedplus   " Copia do vim para o clipboard
" set ttyfast
"       dsadsad
"
set lazyredraw
set autoread        " Recarrega arquivos alterados em disco automaticamente
"set tw=80           " Define a largura do texto como 80 caracteres
"set colorcolumn=81  " Deixa a coluna 80 colorida
set incsearch       " Pesquisa incremental
set hlsearch        " Highligth search :)
set ignorecase      " Pesquisa ignora caixa alta e baixa
set smartcase       " Pesquisa considera caixa alta apenas se ouver uma ou mais maiúsculas na pesquisa

"###############################  ATALHOS  ###################################
"Altera modo, insert/normal, visual/normal
imap ii <ESC>
vmap ii <ESC>

"Sai do vimt
nmap <C-x> <ESC>:q<CR>
imap <C-x> <ESC>:q<CR>

"Salva o documento
nmap <C-o> <ESC>:w<CR>
imap <C-o> <ESC>:w<CR>

"Vai para o inicio da linha em modo insert
imap <C-a> <ESC>0i
map <C-a> <ESC>0i

"Vai para o final da minha em modo insert
imap <C-e> <ESC>$a
map <C-e> <ESC>$a

"Proxima pagina
imap <C-up> <ESC><C-b>
map <C-up> <ESC><C-b>

"Pagina anterior
imap <C-down> <ESC><C-f>
map <C-down> <ESC><C-f>

"Recorta texto em modo normal e insert
imap <C-k> <ESC>dd
map <C-k> <ESC>dd

"Cola texto em modo normal ou insert
imap <C-u> <ESC>Pi
map <C-u> <ESC>Pi

"Recorta texto em modo visual
vmap <C-k> c<ESC>

"Chama tag php
map <F9> :r!echo '<?php ; ?>'<CR><ESC>

"Navega entre abas
map <leader>. <ESC>:tabn<CR>

"Q sai do documento/vim
:command Q q

" ./ Limpando a pesquisa
nmap <silent> <leader>/ :nohlsearch<CR>

" File explorer .t ou .T
let g:netrw_bufsettings = 'noma nomod rnu nobl nowrap ro'
map <leader>t :Explore<CR>
map <leader>T :vsplit<CR> :Explore<CR>

" Evitar de abrir a ajuda sem querer...
inoremap <F1> <ESC>
nnoremap <F1> <ESC>
vnoremap <F1> <ESC>

" Também usar o ; como :
nnoremap ; :

" Tabs tn e tc
nmap <silent> tn :tabnew<CR>
nmap <silent> tc :tabclose<CR>

" Splits .s
nmap <silent> <leader>s :vsplit<CR>
":filetype plugin on
":filetype plugin indent on

" Remove espacos em branco no final das linhas     
"
nmap <leader>w :%s/\s\+$//<CR>

" Salva arquivo sh com permissao de execucao
au BufWritePost *.sh  !chmod +x %

" Embaralha a tela
map <F5> ggVGg?

" export TERM="xterm-256color"
" Cores a considerar:
" Chama o esquema de cores zenburn
colo zenburn

" Seta 256 cores no vim
"let g:solarized_termcolors=256

" Chama tema do vim zenburn
"colorscheme zenburn