Vim (.vimrc)
vimrc com vários atalhos
Categoria: Vim
Software: Vim
[ Hits: 22.375 ]
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>
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
xubuntu sem sons de eventos (3)
Erro ao iniciar serviço samba4 como novo dc em um ambiente com ad (9)
Dificuldade para renderizar vídeo no kdenlive (5)