" " .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 :r! echo $VARkJA imap ¤D :r!date '+\%Y\%m\%d'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\+$ " PalavrasRepetidas: procura palavras repetidas no texto map ,pr /\<\(\w*\) \1\> " JustificaEmail: justifica os textos de email com o justificador em sed vmap ,je :!justify.sed " MinusculasMaiusculas: converte a primeira letra de cada frase p/MAIUSCULAS map ,mm :set noic \:%s/\(\(\([.!?]\s*\\|^\s*\)\n^\\|[.?!-] \)\s*"\?\s*\)\([a-zàáéóú]\)/\1\U\4/cg " 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 " Da a sequencia a essa palavra imap " Procura no dicionario imap " Passa um spell no arquivo map :!spell % " Usando o ispell (ademar) "map :!ispell -b %^M ^M^M :e ^M :new %.bak ^M gg " Ispell no modo visual (miura) ":vmap :w! $HOME/spell.tmp :new ^W15-:r !spell $HOME/spell.tmp ^Wji^Wr "................................................................SHELL-SCRIPTS " Cabecalho padrao para Shell-Scripts, exemplo: " #!/bin/sh " # meu-script.sh " # 19970117 map ggO#!/bin/sh \:r!echo %# o \# ¤D Kessia Pinheiro & Nilo Dantas " Registro de alteracao (ChangeLog): # 19991213 "map gg/^$i# ¤D " BashTemp: linha de criacao do arquivo temporario com o mktemp map ,bt IA_TMP=`mktemp /tmp/$(basename $0).XXXXXX`rm -f $A_TMP " BashUso: linha da chamada da funcao Uso() map ,bu IUso(){ echo "uso: $0 param" ; exit 1 ; }[ "$1" ] \|\| Uso "......................................................................ARQUIVO " Sai fora na marra! imap :wqa! map :wqa! " 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 y:newp:w!$TMP/vim:bd! " 2. Colando no fim do arquivo e tirando "vmap yGop:.,$w!$TMP/vimu`` ".......................................................................OUTROS " Alterna entre janelas sem sair do modo insercao (depois do :split) imap i " DiffApaga: apagar uma entrada num arquivao DIFF "map ,di :.,/diff -[uNr]/-d " HtmlSyntaxe: carregar uma sintaxe HTML alternativa "map ,hs :so ~/.vim/synload.vim:so ~/.vim/html.vim " HtmlData: atualiza data no fim do arquivo HTML map ,hd G:?^$O
--
       \¤D ¤U:r!echo ${PWD\#*/html}/%kJxo
" Para 'ocultar' e voltar os comentarios do arquivo atual noremap :hi Comment ctermfg=black guifg=black noremap :hi Comment term=bold ctermfg=cyan guifg=cyan " 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=2 "numero de colunas para o comando > (ShiftWidth) set wildmode=longest,list:full "para completacao do TAB igual bash set nu "numero de linhas "........................................................................CORES " Cores no terminal com a sintaxe set background=dark "eh importante o bg estar ANTES do terminfo colorscheme dante " 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=4 au BufNewFile,BufRead *.txt source $VIM\vim63\syntax\txt.vim au BufNewFile,BufRead *.txt source $VIM\vim63\syntax\txt.vim au BufNewFile,BufRead *README source $VIM\vim63\syntax\txt.vim au BufNewFile,BufRead *NEWS source $VIM\vim63\syntax\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!:echo "autoIndent="&ai "map ,sc :set ic!:echo "ignoreCase="&ic "map ,sc :set ic! ic? ".....................................................................POTFILES " Copia texto em ingles para a area da traducao imap ?^$/msgidf"ly$j0f"pxF"a " Preenche o cabecalho padrao dos POs da FSF map :2,3s/YEAR/1999/e \:3s/FIRST AUTHOR/#MEU-NOME#/e \:3s/EMAIL@ADDRESS/#MEU-EMAIL#/e \/^"PO-Revision-Date: \f D:r!date '+\%Y-\%m-\%d \%H:\%M-0300\n"'kJ \/^"Last-Translator:f Da #MEU-NOME# <#MEU-EMAIL#>\n" \/^"Language-Team: \f Da Brazilian Portuguese \n" \/^"Content-Type:f=Da=iso-8859-1\n" \/^"Content-Transfer-Encoding:f Da 8BIT\n" \:1,15s/#MEU-NOME#/aurélio marinho jargas/ \:1,15s/#MEU-EMAIL#/verde (a) aurelio net/ ".....................................................................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 :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 '<.\{-}>' :hi preto ctermfg=black ctermbg=blue