vim (.vimrc)
vimrc cheio de firulas
Categoria: Vim
Software: vim
[ Hits: 9.135 ]
Por: Sérgio Luiz Araújo Silva
Tem coisas do tipo:
Atualizar data a cada vez que salvar o arquivo,
inserir número de linhas (dentro de um arquivo) e não apenas visualizar. Uma barra de status que exibe o valor decimal e hexa do caractere sob o cursor ... e muito mais :)
" ultima modificação: Ter 14 Dez 2004 15:49:44 BRST " arquivo de configuração do vim " ( O O ) " ====oOO==(_)==OOo===== " Linhas comentadas são iniciadas por (") aspas duplas " Permite recarregar o vim para que modificações no " próprio vimrc seja ativadas com o mesmo sendo editado nmap <F12> :<C-u>source $HOME/.vimrc <BAR> echo "Vimrc recarregado!"<CR> " editar o .vimrc map ,v :e ~/.vimrc<CR> " Recarrega o .vimrc sem fecha-lo map ,u :source ~/.vimrc<CR> "Auto formatação para parágrafos map <F8> gqap " By default, go for an indent of 4 set shiftwidth=4 set softtabstop=4 set viminfo=%,'50,\"100,:100,n~/.vim/.viminfo set undolevels=1000 " undoing 1000 changes should be enough :-) set updatecount=100 " write swap file to disk after each 20 characters set updatetime=6000 " write swap file to disk after 6 inactive seconds set noerrorbells " don't make noise set incsearch " habilita busca incremental set ts=4 " Paradas de tabulação com 4 espaços " Mover linhas com: Ctrl+(seta abaixo) ou (seta acima) " tem que estar em modo normal! map <C-Down> <esc>ddp<esc> map <C-Up> <esc>ddkP<esc> "----------------------------------------------------- " se há modo gráfico ou se não (set de cores diferentes) " este set de cores foi colocado aqui pois pode não existir " baixe temas em: www.vi-improved.org if has("gui_running") " Vim color file " Maintainer: Datila Carvalho <datila@saci.homeip.net> " Last Change: November, 3, 2003 " Version: 0.1 " This is a VIM's version of the emacs color theme " _Dark Blue2_ created by Chris McMahan. """ Init stuff set background=dark hi clear if exists("syntax_on") syntax reset endif " Vim color file " Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) " Last Change: 2003 Sep. 02 " Version: 1.0 " URL: http://www.unb.ca/chem/ajit/vim.htm " This GUI-only color scheme has a blue-black background let colors_name = "dusk" hi Normal guifg=ivory guibg=#1f3048 " Groups used in the 'highlight' and 'guicursor' options default value. hi ErrorMsg gui=NONE guifg=Red guibg=Linen hi IncSearch gui=NONE guibg=LightBlue guifg=Black hi ModeMsg gui=NONE guifg=fg guibg=bg hi StatusLine gui=NONE guifg=DarkBlue guibg=Grey hi StatusLineNC gui=NONE guifg=Grey50 guibg=Grey hi VertSplit gui=NONE guifg=Grey guibg=Grey hi Visual gui=reverse guifg=fg guibg=LightSkyBlue4 hi VisualNOS gui=underline guifg=fg guibg=bg hi DiffText gui=NONE guifg=Yellow guibg=LightSkyBlue4 hi Cursor guibg=Green guifg=Black hi lCursor guibg=Cyan guifg=Black hi Directory guifg=LightGreen guibg=bg hi LineNr guifg=MistyRose3 guibg=bg hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg hi NonText gui=NONE guifg=Cyan4 guibg=#102848 hi Question gui=NONE guifg=LimeGreen guibg=bg hi Search gui=NONE guifg=SkyBlue4 guibg=Bisque hi SpecialKey guifg=Cyan guibg=bg hi Title gui=NONE guifg=Yellow2 guibg=bg hi WarningMsg guifg=Tomato3 guibg=Linen hi WildMenu gui=NONE guifg=SkyBlue4 guibg=Bisque hi Folded guifg=MistyRose2 guibg=bg hi FoldColumn guifg=DarkBlue guibg=Grey hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan hi DiffChange gui=NONE guifg=white guibg=LightCyan4 hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan " Colors for syntax highlighting hi Constant gui=NONE guifg=MistyRose3 guibg=bg hi String gui=NONE guifg=LightBlue3 guibg=bg hi Special gui=NONE guifg=GoldenRod guibg=bg hi Statement gui=NONE guifg=khaki guibg=bg "hi Statement gui=NONE guifg=#d7cd7b guibg=bg hi Operator gui=NONE guifg=Chartreuse guibg=bg hi Ignore gui=NONE guifg=bg guibg=bg hi ToDo gui=NONE guifg=DodgerBlue guibg=bg hi Error gui=NONE guifg=Red guibg=Linen hi Comment gui=NONE guifg=SlateGrey guibg=bg hi Comment gui=NONE guifg=Lavender guibg=bg hi Identifier gui=NONE guifg=BlanchedAlmond guibg=bg hi PreProc gui=NONE guifg=#ffa0a0 guibg=bg hi Type gui=NONE guifg=NavajoWhite guibg=bg hi Underlined gui=underline guifg=fg guibg=bg set gfn=Bitstream\ Vera\ Sans\ Mono\ 10 else colo elflord endif " se estiver no KDE use a fonte: Bistream Vera Sans if has("gui_kde") set guifont=Bistream\ Vera\Sans/12/-1/5/50/0/0/0/0/0 endif "----------------------------------------------------- " se o sistema é um unix setar o terminal para bash if has("unix") let &shell="bash" set clipboard=autoselect " Let's be friendly :) autocmd VimEnter * echo "Seja bem vindo ao vim. Seu sistema é Linux!" else autocmd VimEnter * echo "Seja bem vindo ao vim. Seu sistema é Windows!" endif "----------------------------------------------------- " O trecho abaixo formata a barra de status com algumas opções interessantes! " mostra o código ascii do caractere sob o cursor e outras coisas mais set statusline=%F%m%r%h%w\ [FORMATO=%{&ff}]\ [TIPO=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POSIÇÃO=%04l,%04v][%p%%]\ [TAMANHO=%L] set laststatus=2 " Sempre exibe a barra de status "---------------- Mapeamentos ---------------------------- " make search results appear in the middle of the screen " faz os resultados da busca aparecerem no meio da tela nmap n nzz nmap N Nzz nmap * *zz nmap # #zz nmap g* g*zz nmap g# g#zz " -------------------------------------- " Seta fechamento automático para parêntese " Set automatic expansion of parenthesis/brackets inoremap ( ()<esc>:call BC_AddChar(")")<cr>i inoremap { {}<esc>:call BC_AddChar("}")<cr>i inoremap [ []<esc>:call BC_AddChar("]")<cr>i " inoremap " ""<esc>:call BC_AddChar("\"")<cr>i " mapeia CTRL+j para pular fora de parênteses colchetes etc... inoremap <C-j> <esc>:call search(BC_GetChar(), "W")<cr>a " Function for the above function! BC_AddChar(schar) if exists("b:robstack") let b:robstack = b:robstack . a:schar else let b:robstack = a:schar endif endfunction function! BC_GetChar() let l:char = b:robstack[strlen(b:robstack)-1] let b:robstack = strpart(b:robstack, 0, strlen(b:robstack)-1) return l:char endfunction " -------------------------------------- " inserir linhas e continuar em modo normal map ,o o<ESC>:echo<CR> map ,O O<ESC>:echo<CR> " windows-style key mappings " estilo de atalhos do windows " copy - copiar vmap <C-C> y " paste - colar nmap <C-V> p imap <C-V> <C-O>p " cut - cortar vmap <C-X> x " undo - desfazer noremap <C-Z> u inoremap <C-Z> <C-O>u " select all - selecionar tudo map <C-a> <esc>ggvG "----------------------------------------------------- " o mapeamento abaixo coloca e retira a numeração " o sistema alterna a numeração para ativa ou desativada map <F11> <esc>:set nu!<cr> map <S-F12> <esc>:dig<cr> " mostra os digrafos do tipo Word® " mapeamento para salvar com CTRL+s map <C-S> :w<CR> imap <C-S> <C-O><C-S> cmap <C-S> <C-C><C-S> " salva com F9 (observe que é para no modo insert tem que dar <esc>) map <F9> <esc>:w<cr> "Word completion "Complementação de palavras set dictionary+=/usr/dict/words set complete=.,w,k set infercase " make all windows the same size when adding/removing windows set noequalalways " Affiche la date au format RFC822 - ftplugin/debchangelog. Nico function! Date822() let savelang = v:lc_time execute "language time C" let dateandtime = strftime("%a, %d %b %Y %X %z") execute "language time " . savelang return dateandtime endfunction iab debdate <C-R>=Date822()<CR> " Mapeamento para apagar com Backspace map <BS> X "----------------------------------------------------- " oculta o destaque das buscas, e exibe de novo com shift+F11 " tira as cores das ocorrências de busca e recoloca (booleano) nno <S-F11> :set hls!<bar>set hls?<CR> " seta: numeração, indentação expansão de tab para espaços " mostra fechamento de parêntese, mostra régua, modo em que " está etc. set nu ai et sm js set showcmd showmode set ruler set backup set backupdir=~/tmp syntax enable highlight PALAVRAS ctermbg=red syntax keyword PALAVRAS linux Nota nota "----------------------------------------------------- " Destaca espaços e tabs redundantes " caso queira usar descomente as ultimas linha e reinicie o " vim ou pressione ,u caso etnha a função de recarregar (veja linha17) " Highlight redundant whitespace and tabs. highlight RedundantWhitespace ctermbg=red guibg=red match RedundantWhitespace /\s\+$\| \+\ze\t/ " for txt, autoformat and wrap text at 70 chars. autocmd BufNewFile,BufRead *.txt set wrapmargin=70 textwidth=70 " Habilita a detecção do tipo de arquivo " Enable file type detection " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. filetype plugin indent on "----------------------------------------------------- " dá permissão para arquivos dos tipos descritos abaixo " Automatically give executable permissions if filename ends in .sh, .pl or .cgi au BufWritePost *.sh,*.pl,*.cgi :!chmod a+x <afile> "----------------------------------------------------- " Automatically give executable permission to scripts starting " with #!/usr/bin/perl and #!/bin/sh au BufWritePost * if getline(1) =~ "^#!/bin/[a-z]*sh" || \ getline(1) =~ "^#!/usr/bin/perl" | silent execute "!chmod a+x <afile>" | endif "----------------- Abreviações -------------------- " abreviatura para o meu nome ab slas Sérgio Luiz Araújo Silva "coloca a data tipo Ter 26/Out/2004 hs 10:53 na linha atual iab ,d <C-R>=strftime("%a %d/%b/%Y hs %H:%M")<CR> iab ,m voyeg3r@gmail.com " abreviações para correção ortográfica iab tambem também iab teh the " a função (strftime) é predefinida pelo sistema iab YDATE <C-R>=strftime("%a %d/%b/%Y hs %H:%M")<CR> iab HDATE <C-R>=strftime("%a %d/%b/%Y hs %H:%M")<CR> " Example: 1998-11-05 19:20:43 MST " Estas linhas sao para não dar erro " na hora de salvar arquivos cab W w cab Wq wq cab wQ wq cab WQ wq cab Q q " ===== DATA AUTOMÁTICA ================== " insira na em seus arquivos = "ultima modificação:" " em qualquer das três primeiras linhas fun! SetDate() mark z if getline(1) =~ ".*ultima modificação:" || \ getline(2) =~ ".*ultima modificação:" || \ getline(3) =~ ".*ultima modificação:" exec "1,5s/\s*ultima modificação: .*$/ultima modificação: " . strftime("%c") . "/" endif exec "'z" endfun " abaixo a chamada a função de data que é chamada toda vez que você " salva um arquivo preexistente fun! SetaData() mark z if getline(1) =~ ".*ultima alteração:" || \ getline(2) =~ ".*ultima alteração:" || \ getline(3) =~ ".*ultima alteração:" exec "1,5s/\s*ultima alteração: .*$/ultima alteração: " . strftime("%c") . "/" endif exec "'z" endfun " coloquei duas opções (alteração e modificação), assim " não tem perigo de você esquecer e o sistema " não atualizar a data do salvamento, outra melhoria na função " é que agora é válida para qualquer tipo de arquivo. se usar " num html por exemplo insira um começo de comentário na linha " da data e feche o comentário na próxima linha " abaixo a chamada a função de data que é chamada toda vez que você " salva um arquivo preexistente au BufWritePre * call SetDate() au BufWritePre * call SetaData() "==== Fim da Data Automática =============== " === Cria um registro de alterações de arquivo ======== " ChangeLog entry convenience " Função para inserir um status do arquivo " cirado: data de criação, alteração, autor etc fun! InsertChangeLog() normal(1G) call append(0, "Arquivo") call append(1, "Criado: " . strftime("%a %d/%b/%Y hs %H:%M")) call append(2, "ultima modificação: " . strftime("%a %d/%b/%Y hs %H:%M")) call append(3, "Autor: Sérgio Luiz Araújo Silva") normal($) endfun map ,cl :call InsertChangeLog()<cr>A " Cria um cabeçalho para scripts bash fun! InsertHeadBash() normal(1G) call append(0, "#!bin/bash") call append(1, "# Criado em:" . strftime("%a %d/%b/%Y hs %H:%M")) call append(2, "# ultima modificação:" . strftime("%a %d/%b/%Y hs %H:%M")) call append(3, "# Departamento Estadual de Trânsito - DETRAN/CE") call append(3, "# Propósito do script") normal($) endfun map ,sh :call InsertHeadBash()<cr>A " Remove Ctrl+M do final de linhas do DOS " get rid of if has("user_commands") " remove ^M from the file com! RemoveCtrlM :%s/^M/\r/g " change to directory of current file com! CD cd %:p:h endif "----------------------------------------------------- " HTML: Funcoes particulares para editar arquivos HTML " Cria um esqueleto de arquivo HTML ao abrir um arquivo novo .html " Should stop HTML Files auto-indenting "----------------------------------------------------- "augroup html " au! <--> Remove all html autocommands " au! " au BufNewFile,BufRead *.html,*.shtml,*.htm set ft=html " au BufNewFile,BufRead,BufEnter *.html,*.shtml,*.htm so ~/docs/vim/.vimrc-html " au BufNewFile *.html 0r ~/docs/vim/skel.html " au BufNewFile *.html*.shtml,*.htm /body/+ " au BufNewFile,BufRead *.html,*.shtml,*.htm set noautoindent "augroup end "----------------------------------------------------- "----------------------------------------------------- " Procure usar a função "InsertHeadBash()" com o mesmo propósito " das linhas abaixo. A função citada insere um cabeçalho pronto " com "change log". " autocomandos para scripts "augroup sh " au! " au BufNewFile *.sh 0r ~/docs/vim/skel.sh " au BufNewFile,BufRead *.sh set ts=4 "augroup end "----------------------------------------------------- " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). " " Ao editar um arquivo será aberto no ultimo ponto em " que foi editado autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif " " insere número de linhas com ,n map ,n :%s/^/\=line('.') . ' ' <cr>
Nenhum comentário foi encontrado.
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Melhorando a precisão de valores flutuantes em python[AJUDA] (15)
Mint começou a apresentar varios erros (2)
Recuperar arquivos de HD em formato RAW usando Linux (1)