Vim (.vimrc)

vimrc com vários atalhos

Categoria: Vim

Software: Vim

[ Hits: 22.349 ]

Por: Renato Michnik de Carvalho


Esse .vimrc foi feito pelo Aurélio e possui diversos atalhos para facilitar a sua vida e nao preciso nem comentar pois o .vimrc está todo comentado.


"
"                           .vimrc do aurelio
"                       ------------------------- 
"                   Copie, altere, arrume, use, venda
"                 -------------------------------------
"               http://aurelio.net/doc/dotfiles/vimrc.txt
"             ---------------------------------------------




"...............................................................PSEUDO-FUNCOES
" Exemplo de mapeamentos para serem usados por outros mapeamentos,
" para evitar repeticao de codigo, como seu email ou a data atual.
" O caractere '¤' é apenas um prefixo original para não confundir com texto.
" Para ler variaveis de ambiente faca: imap ¤E <esc>:r! echo $VAR<cr>kJA
imap ¤E verde (a) aurelio net
imap ¤U http://aurelio.net
imap ¤D <esc>:r!date '+\%Y\%m\%d'<cr>kJA


".........................................................................INFO
" Guarda posicao do cursor e historico da linha de comando :
set viminfo='10,\"30,:40,%,n~/.viminfo
au BufReadPost * if line("'\"")|execute("normal `\"")|endif

"......................................................................LIMPEZA
" MostraTab: mostra TAB no inicio e espacos no fim das linhas
map ,mt /^\t\+\\|\s\+$<cr>
" PalavrasRepetidas: procura palavras repetidas no texto
map ,pr /\<\(\w*\) \1\><cr>
" JustificaEmail: justifica os textos de email com o justificador em sed
vmap ,je :!justify.sed<cr>
" MinusculasMaiusculas: converte a primeira letra de cada frase p/MAIUSCULAS
map ,mm :set noic<cr>
       \:%s/\(\(\([.!?]\s*\\|^\s*\)\n^\\|[.?!-] \)\s*"\?\s*\)\([a-zàáéóú]\)/\1\U\4/cg<cr>

" O mapeamento acima ',mm' serve para "Maiusculizar" frase escritas
" sem as inicias em maiusculas (eu gosto disso). Ao fazer um
" documento grande, eu normalmente escrevo tudo em minusculas, sem
" me preocupar com os comecos de frase. Depois, basta usar este
" mapeamento e converter tudo de uma vez. A ER esta bem abrangente
" e casa todos os pontos marcados com 'zzz' no texto abaixo:
"
" zzz paragrafo que continua
" em outra linha.
"
" zzz outro paragrafo. zzz segunda frase.
" zzz terceira! zzz mais uma? zzz e outra.
"
" - zzz item de lista
"
"    zzz frase com um TAB na frente.
"   zzz e uma outra com espacos.
" "zzz que tal uma citacao?"

"......................................................DICIONARIO & ORTOGRAFIA
" Dicionario para procurar o auto-complemento de palavras
"set dictionary=/home/verde/.ispell_br
" Completa uma palavra
imap <F7> <c-n>
" Da a sequencia a essa palavra
imap <F8> <c-x><c-n>
" Procura no dicionario
imap <c-d> <c-x><c-k>
" Passa um spell no arquivo
map <F6> :!spell %<cr>
" Usando o ispell (ademar)
"map <F6> :!ispell -b %^M ^M^M :e ^M :new %.bak ^M <F4> gg
" Ispell no modo visual (miura)
":vmap <F12> <ESC>:w! $HOME/spell.tmp <ESC>:new <ESC>^W15-<ESC>:r !spell $HOME/spell.tmp <ESC>^Wji<ESC>^Wr



"................................................................SHELL-SCRIPTS
" Cabecalho padrao para Shell-Scripts, exemplo:
"   #!/bin/sh
"   # meu-script.sh
"   # 19970117 <verde (a) aurelio net>
map <F9>  ggO#!/bin/sh
          \<c-o>:r!echo %<cr># <c-o>o
          \# ¤D Aurelio Marinho Jargas<cr>
" Registro de alteracao (ChangeLog): # 19991213 
map <F10> gg/^$<cr>i# ¤D 

" BashTemp: linha de criacao do arquivo temporario com o mktemp
map ,bt IA_TMP=`mktemp /tmp/$(basename $0).XXXXXX`<cr>rm -f $A_TMP<cr>
" BashUso: linha da chamada da funcao Uso()
map ,bu IUso(){ echo "uso: $0 param" ; exit 1 ; }<cr>[ "$1" ] \|\| Uso<cr>


"......................................................................ARQUIVO
" Sai fora na marra!
imap <F12> <esc>:wqa!<cr>
 map <F12> :wqa!<cr>
" Abreviacoes uteis para sua sanidade mental
cab W w | cab Q q | cab Wq wq | cab wQ wq | cab WQ wq

" Gravar selecao visual num arquivo ($TMP eh var de ambiente)
" 1. Usando buffer novo
vmap <F5> y:new<cr>p:w!$TMP/vim<cr>:bd!<cr>
" 2. Colando no fim do arquivo e tirando
"vmap <F5> yGo<esc>p:.,$w!$TMP/vim<cr>u``


".......................................................................OUTROS
" Alterna entre janelas sem sair do modo insercao (depois do :split)
imap <F4> <esc><c-w><c-w>i
" 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>
" Para 'ocultar' e 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>
" Busca colorida em verde
hi    Search ctermbg=green ctermfg=black
hi IncSearch ctermbg=black ctermfg=cyan

"................................................................OPCOES DO SET
"(IncrementedSearch, HighLightedSearch, IgnoreCase, SmartCaSe)
set is hls ic scs magic   "opcoes espertas de busca
set sm             "ShowMatch: mostra o par do parenteses/chaves recem fechado
set hid            "HIDden: nao lembro pra que servia mas era massa
set aw             "AutoWrite: gravacao automatica a cada alteracao
set ai             "AutoIndent: identacao automatica
set ts=4           "TabStop: numero de caracteres de avanco do TAB
set report=0       "reporta acoes com linhas
set shm=filmnrwxt  "SHortMessages: encurta as mensagem do rodape
"set et             "ExpandTab: troca TABs por espacos
"retab              "converter os TABs ja existentes
set ruler          "mostra a posicao do cursor, regua
"set showcmd        "mostra o comando sendo executado
set laststatus=2   "mostra N linhas de estado (status)
set textwidth=70   "quebra de linha
set bs=2           "comportamento do backspace
set nosmartindent  "desligando pois esta padrao no CL40
"set visualbell     "pisca a tela ao inves de bipar
set wrap           "forca a quebra de linha
set nojoinspaces   "! coloca 2 espacos apos o . quando usando o gq
set sw=1           "numero de colunas para o comando > (ShiftWidth)
set wildmode=longest,list:full  "para completacao do TAB igual bash


"........................................................................CORES
" Cores no terminal com a sintaxe
set background=dark     "eh importante o bg estar ANTES do terminfo
" Acho que essa tosquice toda nao eh mais necessaria
"if has("terminfo")
"  set t_Co=8
"  set t_Sf=[3%p1%dm
"  set t_Sb=[4%p1%dm
"else
"  set t_Co=8
"  set t_Sf=[3%dm
"  set t_Sb=[4%dm
"endif
syntax on               "ligando a sintaxe colorida


".........................................................COMANDOS AUTOMATICOS

" 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 aurélio aurelio marinho jargas verde
syn keyword p_c conectiva cl
syn keyword p_c dumbs scarecrow valeta
syn keyword p_c toyota diesel
syn keyword p_c vi vim emacs sed ed pine bash python
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
au BufNewFile,BufRead *.txt   source ~/www/doc/vim/txt.vim
au BufNewFile,BufRead *README source ~/www/doc/vim/txt.vim
au BufNewFile,BufRead *NEWS   source ~/www/doc/vim/txt.vim

" Python: TAB colorido e outras configuracoes
au FileType python set ts=4 tw=80 noet
au FileType python syn match pythonTAB '\t\+'
au FileType python hi pythonTAB ctermbg=blue
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

" Spec: usar o meu arquivo e não o default
au! Syntax spec
au  Syntax spec so ~/www/doc/vim/spec.vim
au BufNewFile,BufRead *.spec set tw=75 et 

" Php: Para usar o meu arquivo de sintaxe do php3
"au! Syntax php3
"au  Syntax php3 so ~/www/doc/vim/php3.vim
au BufNewFile,BufRead *.php   source ~/www/doc/vim/php3.vim 
au BufNewFile,BufRead *.php3  source ~/www/doc/vim/php3.vim 

" HTML: Funcoes particulares para editar arquivos HTML
"au BufNewFile,BufRead *.html,*.shtml so ~/.vimrc-html
" Cria um esqueleto de arquivo HTML ao abrir um arquivo novo .html
"au BufNewFile *.html read ~/www/doc/vim/skel.html

" Src: Define arquivos .src como tipo HTML
"au BufNewFile,BufRead *.src set ft=html

" Quizz: Sintaxe para meus arquivos de dados do programa quiZZ
au BufNewFile,BufRead *.qzz  so ~/cnc/vim/qzz.vim

" Sgml E DocBook: maaaaaaaalas
au BufNewFile,BufRead *.mod set ft=dtd
au BufNewFile,BufRead *.cat set ft=dtd
au BufNewFile,BufRead *.gml set ft=dtd

" Netscape: o arquivo de mensagens parece com o xdefaults
au BufNewFile,BufRead Netscape.* set ft=xdefaults

" Coluna Do Aurelio: quebrar sempre em 72 colunas
au BufNewFile,BufRead coluna??.txt set tw=72

" PageMaker: colorir as marcações
au BufNewFile,BufRead *.pm6 so ~/www/doc/vim/pagemaker.vim 


".................................................................LIGA/DESLIGA
" (e mostra o valor atual na linha de comando)
" Tem que fazer toda a sequencia sem pausa, senao entra no modo de insercao
" ,: comeco de mapeamento | s: comando :set | [a-z]: sigla da opcao do set
"map ,si :set ai!<cr>:echo "autoIndent="&ai<cr>
"map ,sc :set ic!<cr>:echo "ignoreCase="&ic<cr>
"map ,sc :set ic! ic?<cr>

".....................................................................POTFILES
" Copia texto em ingles para a area da traducao
imap <F10> <esc>?^$<cr>/msgid<cr>f"ly$j0f"pxF"a
" Preenche o cabecalho padrao dos POs da FSF
map <F11> :2,3s/YEAR/1999/e<cr>
         \:3s/FIRST AUTHOR/#MEU-NOME#/e<cr>
         \:3s/EMAIL@ADDRESS/#MEU-EMAIL#/e<cr>
         \/^"PO-Revision-Date:<cr>
         \f D:r!date '+\%Y-\%m-\%d \%H:\%M-0300\n"'<cr>kJ
         \/^"Last-Translator:<cr>f Da #MEU-NOME# <#MEU-EMAIL#>\n"<esc>
         \/^"Language-Team:<cr>
         \f Da Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"<esc>
         \/^"Content-Type:<cr>f=Da=iso-8859-1\n"<esc>
         \/^"Content-Transfer-Encoding:<cr>f Da 8BIT\n"<esc>
         \:1,15s/#MEU-NOME#/aurélio marinho jargas/<cr>
         \:1,15s/#MEU-EMAIL#/verde (a) aurelio net/<cr>

".....................................................................EXEMPLOS
" DIFF do proprio arquivo editado
"w! diff -u - %

" Para usar um arquivo proprio de sintaxe (estraga as outras sintaxes - palha)
":let mysyntaxfile = "/home/verde/vim/dic.vim"
" Ou ainda, especificar um diretorio
"map ,SO :so ~/vim/syntax/

" Exemplo de como carregar um arquivo que esta no mesmo diretorio
"au BufNewFile,BufRead */summaries/*    source <sfile>:p:h/tsdsumm.vim

" Funciona esse troco?? sei la, preguica de testar...
"let highlight_sedtabs = 1


".........................................................................MISC
" Mostra os espaços em branco inúteis no final da linha
syn match brancomala '\s\+$' | hi brancomala ctermbg=red
" Esconder as tags HTML (pintando de preto)
map ,hh :syn match preto '<.\{-}>' <cr>:hi preto ctermfg=black ctermbg=blue<cr>
  


Comentários
[1] Comentário enviado por jeffestanislau em 04/02/2004 - 12:09h

muito legal, gostei !!!

[2] Comentário enviado por caiquemd em 22/07/2007 - 21:24h

bom muito bom

[3] Comentário enviado por comfaa em 28/10/2008 - 10:48h

muito bom !!

[4] Comentário enviado por removido em 13/11/2019 - 16:22h

Hoje, em Nov/2019, seu mapeamento ainda é muito útil !!!


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts