" Copyright (C) 2004, 2005, 2006, 2007 Lincoln de Sousa " " This program is free software; you can redistribute it and/or " modify it under the terms of the GNU General Public License as " published by the Free Software Foundation; either version 2 of the " License, or (at your option) any later version. " " This program is distributed in the hope that it will be useful, " but WITHOUT ANY WARRANTY; without even the implied warranty of " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " General Public License for more details. " " You should have received a copy of the GNU General Public " License along with this program; if not, write to the " Free Software Foundation, Inc., 59 Temple Place - Suite 330, " Boston, MA 02111-1307, USA. syntax on set fileencoding=utf-8 set mouse= set showmatch set nowrap set nu set backspace=indent,eol,start set ts=4 set sw=4 set et "set statusline=%F%m%r%h%w\ [Formato=%{&ff}]\ [Tipo=%Y]\ [Posicao\ atual=%04v]\ [Linha\ atual=%04l]\ [%p%%]\ [Tamanho=%L\ linhas] [Ascii=\%03.3b]\ [Hex=\%02.2B]\ set statusline=%F%m%r%h%w\ [Formato=%{&ff}]\ [Tipo=%Y]\ [Posicao=%04v][%p%%]\ [Tamanho=%L\ linhas]\ [Ascii=\%03.3b]\ [Hex=\%02.2B]\ set laststatus=2 set autoindent set nobackup set completeopt=menu set autoread set autoindent " automated comments: source $HOME/.vimplugins/comments.vim "source $HOME/.vimplugins/python_fold.vim " File explorer let g:netrw_hide = 1 let g:netrw_list_hide = "^\\..*" " python let python_highlight_numbers=1 let python_highlight_builtins=1 let python_highlight_exceptions=1 let python_highlight_space_errors=1 autocmd FileType python filetype indent on autocmd FileType xml,xhtml source /usr/share/vim/vim71/indent/xml.vim autocmd FileType python set textwidth=79 autocmd FileType tex set textwidth=79 " autocompletion de macho! set wildmode=list:longest " C, js autocmd FileType c,cpp,javascript setlocal cindent autocmd FileType c,cpp,javascript setlocal ts=2 autocmd FileType c,cpp,javascript setlocal sw=2 autocmd FileType html,htmldjango setlocal textwidth=5000 " tab config :nmap :tabnew map :tabnext map :tabprevious map :tabnext map :tabprevious " code folding "autocmd FileType python set foldmethod=indent "autocmd FileType python :%foldopen! "autocmd BufNewFile,BufRead *.c,*.cpp set foldmethod=indent "autocmd BufNewFile,BufRead *.c,*.cpp :%foldopen! " adicao de tipos do zopao autocmd BufNewFile,BufRead *.zcml setf xml autocmd BufNewFile,BufRead *.pt,*.[cj]pt, setf xhtml autocmd BufNewFile,BufRead *.css.dtml setf css autocmd BufNewFile,BufRead *.js.dtml setf javascript autocmd BufNewFile,BufRead *.metadata setf dosini " tab para o make e ChangeLog autocmd FileType changelog setlocal textwidth=79 autocmd FileType changelog setlocal noet autocmd FileType make setlocal noet " Salvar a posicao do cursor em arquivos recem editados autocmd BufRead *,.* :normal '" " -- Templates -- " Funções releacionadas a templates de códigos. function! LoadTemplate(template) let content = readfile($HOME . "/.vimplugins/templates/" . a:template) return content endfunction function! InsertPdb() execute "normal Iimport pdb; pdb.set_trace()" endfunction if exists(":Pdb") != 2 command! -nargs=0 Pdb call InsertPdb() endif function! InsertTemplate(template) normal(1G) call append(0, LoadTemplate(a:template)) echo "template" a:template "inserido com sucesso!" normal($) endfunction function! InsertGObjectBody(namespace,typename) let ns = a:namespace let type = a:typename :silent! exec 'tabnew '.namespace.'-'.typename.'.c' call append(0, LoadTemplate("gobject.c")) :silent! exec '%s/@ns@/\l'.ns.'/g' :silent! exec '%s/@Ns@/\u'.ns.'/g' :silent! exec '%s/@NS@/\U'.ns.'/g' :silent! exec '%s/@type@/\l'.type.'/g' :silent! exec '%s/@Type@/\u'.type.'/g' :silent! exec '%s/@TYPE@/\U'.type.'/g' :silent! setf c endfunction function! InsertGObjectHead(namespace, typename) let ns = a:namespace let type = a:typename :silent! exec 'tabnew '.namespace.'-'.typename.'.h' call append(0, LoadTemplate("gobject.h")) :silent! exec '%s/@ns@/\l'.ns.'/g' :silent! exec '%s/@Ns@/\u'.ns.'/g' :silent! exec '%s/@NS@/\U'.ns.'/g' :silent! exec '%s/@type@/\l'.type.'/g' :silent! exec '%s/@Type@/\u'.type.'/g' :silent! exec '%s/@TYPE@/\U'.type.'/g' :silent! setf c endfunction function! GnuIndent() :silent! %!indent -gnu -nut endfun if exists(":InsertTemplate") != 2 command! -nargs=1 InsertTemplate call InsertTemplate() endif if exists(":GObjectBody") != 2 command! -nargs=* InsertGObjectBody call InsertGObjectBody() endif if exists(":GObjectHead") != 2 command! -nargs=* InsertGObjectHead call InsertGObjectHead() endif if exists(":GnuIndent") != 2 command! GnuIndent call GnuIndent() endif if exists(":PythonLicense") != 2 command! PythonLicense call InsertTemplate("pylicense") endif if exists(":CLicense") != 2 command! CLicense call InsertTemplate("clicense") endif if exists(":Alfaiati") != 2 command! Alfaiati call InsertTemplate("alfaiati") endif " mostra a side bar com um file explorer " ah esquerda do vim function! ShowSideBar() " pra alterar o tema descomente a linha abaixo " colorscheme elflord vertical split vertical resize 22 set nonu :Explore endfun map :call ShowSideBar() map :call InsertPdb() vmap :call InsertPdb() " permite recarregar o vim para que as modificacoes no .vimrc sejam ativadas nmap :source $HOME/.vimrc echo "Vimrc recarregado!" autocmd FileType html set textwidth=500 autocmd FileType javascript set textwidth=500 function! HtmlEscape() :silent! s/ / /g :silent! s/¡/¡/g :silent! s/¢/¢/g :silent! s/£/£/g :silent! s/¤/¤/g :silent! s/¥/¥/g :silent! s/¦/¦/g :silent! s/§/§/g :silent! s/¨/¨/g :silent! s/©/©/g :silent! s/ª/ª/g :silent! s/«/«/g :silent! s/¬/¬/g :silent! s/­/­/g :silent! s/®/®/g :silent! s/¯/¯/g :silent! s/°/°/g :silent! s/±/±/g :silent! s/²/²/g :silent! s/³/³/g :silent! s/´/´/g :silent! s/µ/µ/g :silent! s/¶/¶/g :silent! s/·/·/g :silent! s/¸/¸/g :silent! s/¹/¹/g :silent! s/º/º/g :silent! s/»/»/g :silent! s/¼/¼/g :silent! s/½/½/g :silent! s/¾/¾/g :silent! s/¿/¿/g :silent! s/À/À/g :silent! s/Á/Á/g :silent! s/Â/Â/g :silent! s/Ã/Ã/g :silent! s/Ä/Ä/g :silent! s/Å/Å/g :silent! s/Æ/Æ/g :silent! s/Ç/Ç/g :silent! s/È/È/g :silent! s/É/É/g :silent! s/Ê/Ê/g :silent! s/Ë/Ë/g :silent! s/Ì/Ì/g :silent! s/Í/Í/g :silent! s/Î/Î/g :silent! s/Ï/Ï/g :silent! s/Ð/Ð/g :silent! s/Ñ/Ñ/g :silent! s/Ò/Ò/g :silent! s/Ó/Ó/g :silent! s/Ô/Ô/g :silent! s/Õ/Õ/g :silent! s/Ö/Ö/g :silent! s/×/×/g :silent! s/Ø/Ø/g :silent! s/Ù/Ù/g :silent! s/Ú/Ú/g :silent! s/Û/Û/g :silent! s/Ü/Ü/g :silent! s/Ý/Ý/g :silent! s/Þ/Þ/g :silent! s/ß/ß/g :silent! s/à/à/g :silent! s/á/á/g :silent! s/â/â/g :silent! s/ã/ã/g :silent! s/ä/ä/g :silent! s/å/å/g :silent! s/æ/æ/g :silent! s/ç/ç/g :silent! s/è/è/g :silent! s/é/é/g :silent! s/ê/ê/g :silent! s/ë/ë/g :silent! s/ì/ì/g :silent! s/í/í/g :silent! s/î/î/g :silent! s/ï/ï/g :silent! s/ð/ð/g :silent! s/ñ/ñ/g :silent! s/ò/ò/g :silent! s/ó/ó/g :silent! s/ô/ô/g :silent! s/õ/õ/g :silent! s/ö/ö/g :silent! s/÷/÷/g :silent! s/ø/ø/g :silent! s/ù/ù/g :silent! s/ú/ú/g :silent! s/û/û/g :silent! s/ü/ü/g :silent! s/ý/ý/g :silent! s/þ/þ/g :silent! s/ÿ/ÿ/g :silent! s/\"/"/g :silent! s/\'/'/g :silent! s//>/g :silent! s/&/&/g endfun function! HtmlUnEscape() :silent! s/\ / /g :silent! s/\¡/¡/g :silent! s/\¢/¢/g :silent! s/\£/£/g :silent! s/\¤/¤/g :silent! s/\¥/¥/g :silent! s/\¦/¦/g :silent! s/\§/§/g :silent! s/\¨/¨/g :silent! s/\©/©/g :silent! s/\ª/ª/g :silent! s/\«/«/g :silent! s/\¬/¬/g :silent! s/\­/­/g :silent! s/\®/®/g :silent! s/\¯/¯/g :silent! s/\°/°/g :silent! s/\±/±/g :silent! s/\²/²/g :silent! s/\³/³/g :silent! s/\´/´/g :silent! s/\µ/µ/g :silent! s/\¶/¶/g :silent! s/\·/·/g :silent! s/\¸/¸/g :silent! s/\¹/¹/g :silent! s/\º/º/g :silent! s/\»/»/g :silent! s/\¼/¼/g :silent! s/\½/½/g :silent! s/\¾/¾/g :silent! s/\¿/¿/g :silent! s/\À/À/g :silent! s/\Á/Á/g :silent! s/\Â/Â/g :silent! s/\Ã/Ã/g :silent! s/\Ä/Ä/g :silent! s/\Å/Å/g :silent! s/\Æ/Æ/g :silent! s/\Ç/Ç/g :silent! s/\È/È/g :silent! s/\É/É/g :silent! s/\Ê/Ê/g :silent! s/\Ë/Ë/g :silent! s/\Ì/Ì/g :silent! s/\Í/Í/g :silent! s/\Î/Î/g :silent! s/\Ï/Ï/g :silent! s/\Ð/Ð/g :silent! s/\Ñ/Ñ/g :silent! s/\Ò/Ò/g :silent! s/\Ó/Ó/g :silent! s/\Ô/Ô/g :silent! s/\Õ/Õ/g :silent! s/\Ö/Ö/g :silent! s/\&time:silent! s/×/g :silent! s/\Ø/Ø/g :silent! s/\Ù/Ù/g :silent! s/\Ú/Ú/g :silent! s/\Û/Û/g :silent! s/\Ü/Ü/g :silent! s/\Ý/Ý/g :silent! s/\Þ/Þ/g :silent! s/\ß/ß/g :silent! s/\à/à/g :silent! s/\á/á/g :silent! s/\â/â/g :silent! s/\ã/ã/g :silent! s/\ä/ä/g :silent! s/\å/å/g :silent! s/\æ/æ/g :silent! s/\ç/ç/g :silent! s/\è/è/g :silent! s/\é/é/g :silent! s/\ê/ê/g :silent! s/\ë/ë/g :silent! s/\ì/ì/g :silent! s/\í/í/g :silent! s/\î/î/g :silent! s/\ï/ï/g :silent! s/\ð/ð/g :silent! s/\ñ/ñ/g :silent! s/\ò/ò/g :silent! s/\ó/ó/g :silent! s/\ô/ô/g :silent! s/\õ/õ/g :silent! s/\ö/ö/g :silent! s/\÷/÷/g :silent! s/\ø/ø/g :silent! s/\ù/ù/g :silent! s/\ú/ú/g :silent! s/\û/û/g :silent! s/\ü/ü/g :silent! s/\ý/ý/g :silent! s/\þ/þ/g :silent! s/\ÿ/ÿ/g :silent! s/\"/\"/g :silent! s/\<//g :silent! s/\&/\'/g endfun nmap :call HtmlEscape() nmap :call HtmlUnEscape() " vim -b : edit binary using xxd-format! augroup Binary au! au BufReadPre *.bin let &bin=1 au BufReadPost *.bin if &bin | %!xxd au BufReadPost *.bin set ft=xxd | endif au BufWritePre *.bin if &bin | %!xxd -r au BufWritePre *.bin endif au BufWritePost *.bin if &bin | %!xxd au BufWritePost *.bin set nomod | endif augroup END