Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Tabela de conteúdo

Introdução

A primeira e grande dica é personalizar o arquivo de configuração do vim, nele podemos setar algumas coisas úteis, por exemplo se digito errado a palavra também, coloco em meu .vimrc a seguinte linha.

"Abreviações
iab tambem também

Além das abreviações o vim pode numerar automaticamente as linhas, no .vimrc coloque:

"Settings
set nu

Macros

No vim é possível gravar ações em macros, por exemplo:
Se você está em um ambiente hostil, tipo windows :) baixe o gvim:

ftp://ftp.vim.org/pub/vim/pc/gvim64.exe

Depois de instalado você pode editar multiplos arquivos de forma simples com uma macro. Veja:
No exemplo abaixo vou apagar a 5ª linha de todos os arquivos.

vim *.txt
qa          --> inicia a gravação de uma macro chamada "a"
:5<enter>   --> vai para a 5ª linha
dd          --> deleta
:w<enter>   --> salva o arquivo
:bn<enter>  --> vai para o próximo arquivo "buffer next"
q           --> encerra a gravação da macro "quit"

execute a macro com o comando:

@a

O vim irá apagar a 5ª linha do arquivo corrente, salvar e pular para o próximo, de acordo com a nossa soberana vontade.
Caso queira executar a macro "a" 100 vezes faça:

100@a

Mapeamentos

Você pode mapear uma tecla para executar uma fução, por exemplo salvar o arquivo corrente:

map <F9> <es>:w<cr>

mapeamento para exibir/ocultar numeração de linhas:

map <F11> <esc>:set nu!<cr>

Fechamento automático de parênteses

imap { {}<left>
imap ( ()<left>
imap [ []<left>

Nos mapemantos

<c-l> 

É igual a

CTRL-l

pular fora dos parênteses, colchetes e chaves

" na verdade caminha para a direita 'l' e para esquerda 'h'

imap <c-l> <esc><right>a
imap <c-h> <esc><left>a

Expressões regulares

O vim aceita expressões regulares em seus padrões de busca e substituição. Essa característica amplia seu poder. Veja exemplos: Inserindo número de linha dentro do arquivo

" %s/^/\=line('.'). ' '

Deletar linhas vazias em um arquivo

:%g/^$/d

trocando a posição de duas palavras, por exemplo:
Sobrenome: Araújo, Nome: Sérgio

:%s/\(Sobrenome: Araújo\)\(,\s\)\(Nome: Sérgio\)/\3\2\1/

Ficaria:
Nome: Sérgio, Sobrenome: Araújo
Sem o uso de Expressões Regulares você pode trocar o case de uma palavra e até do arquivo inteiro assim:

gguG

Usando expressões regulares pode-se fazer assim:

:%s/.*/\u&/g

Miscelânia

Data automática

Coloque no seu (.virmc - Linux) (_vimrc - windows)

" =============== 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:"  ||
                          \ getline(4) =~ ".*ultima modificação:"  ||
                          \ getline(5) =~ ".*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! LastChange()
  mark z
  if getline(1) =~ ".*Last Change:" ||
                          \ getline(2) =~ ".*Last Change:"  ||
                          \ getline(3) =~ ".*Last Change:"  ||
                          \ getline(4) =~ ".*Last Change:"  ||
                          \ getline(5) =~ ".*Last Change:"
     exec "1,5s/\s*Last Change: .*$/Last Change: " . 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 LastChange()
"
"============ Fim da Data Automática ===================

Change Log

" === 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 - voyeg3r@gmail.com")
   normal($)
endfun
" para inserir o change log digite ,cl
map ,cl :call InsertChangeLog()<cr>A

Veja também

* vimrc do Voyeg3r
Horários baseados na GMT -3. Agora são 9:14.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.