Autocompletando no vim + dicionário PHP

vim.gifNesse artigo sobre o vim, falei um pouco sobre a personalização do .vimrc, agora vamos adicionar um dicionário das funções php para que você consiga autocompletar suas funções como aqueles editores pesados como o phpeclipse faz, mas ao invés de usarmos o CTRL+espaço, vamos usar apenas o TAB.

  1. Crie os diretórios para plugin e doc no vim
    • mkdir -p ~/.vim/doc
    • mkdir -p ~/.vim/plugin
  2. Baixe e instale o plugin para o vim SuperTab.
  3. Baixe a lista das funções php do site do Lerdorf e salve em ~/.vim/doc

Agora para tudo funcionar, basta inserir a linha abaixo no seu .vimrc:

1
2
3
if has("autocmd")
autocmd FileType php  set complete-=k/home/USUARIO/.vim/doc/funclist.txt complete+=k/home/USUARIO/.vim/doc/funclist.txt
endif

Lembre de trocar USUARIO pelo seu usuário no sistema.

Pronto, se você fez tudo corretamente, faça um teste:

1
vim teste.php
1
2
3
<?php
eregi_re
?>

deve ficar:

1
2
3
<?php
eregi_replace
?>

T+

Categories: Console, Linux, PHP, Programação, Vim Tags: , , ,

Personalizando seu .vimrc

vim.gifSe tem algo que me faz gosto em programar, é a extensibilidade do editor vim, há anos uso ele diariamente e confesso que no início foi um pouco dificil de me acostumar, mas depois que se acostuma os ganhos em agilidade são imensos, estou pensando em fazer vários mini tutoriais a respeito do vim, o que acham? O propósito desse artigo é falar um pouco sobre a personalização do seu .vimrc. Antes de tudo, abra um terminal e digite os 2 comandos abaixo:

cd vim .vimrc

Pronto, com o arquivo aberto vamos la! Bem, como programador php, a maioria dos arquivos que eu abro são com extensões .php o que o vim syntaxia ele automaticamente pois eu tenho a linha abaixo habilitada

syntax on

Mas e quando um merda santo resolve criar uma classe php e coloca como extensão .cls, .inc ou ainda .module? Ai o vim não syntaxia automaticamente, lascou né? Não, basta colocar:

au BufRead,BufNewFile *.cls,*.inc,*.module set filetype=php

Aqui transformando os arquivos com extensões .tpl e .html como html

au BufRead,BufNewFile *.tpl,*.html set filetype=html

Resolvido o problema da syntax, vamos colocar mais algumas opções, lembrando que as aspas duplas querem dizer comentários ok.

set nu "colocar as linhas automaticamente"
set cindent "indentação no estilo C"
set is hls ic scs "opções de busca"
set sm "mostra o início do bloco que acabou de ser fechado, sm é o mesmo que ShowMatch"
set wildmode=longest,list "para completar com TAB igualzinho o bash faz"
set ai "auto indent"
set shiftwidth=4 "se mudar o valor eu te mato :-P, numero de espaço usado quando rolar o autoindent"
set softtabstop=4 "se mudar aqui, tb te mato! numero de espaços que deve-se dar quando apertar o TAB"
set tabstop=4 "por favor, também nao mude isso! numero de espações que deve-se voltando quando apertar o backspace num tab"
set bs=2 "para o backspace se comportar como a gente gosta"
set fdm=marker "o modo como o folding deverá trabalhar, prometo escrever um artigo falando sobre o folding no vim"
set termencoding=utf8 "Yeah!! UTF-8 em tudo!"
filetype plugin on
filetype indent on

Sou um preguiçoso, por isso me tornei programador, então, vai ai algums atalhos que uso constantemente para debugar partes dos meus scripts

1
2
3
4
5
6
7
" atalhos
abbreviate epre echo "&lt;pre&gt;&lt;hr&gt;"; print_r($); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate epres echo "&lt;pre&gt;&lt;hr&gt;"; print_r($_SESSION); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate eprep echo "&lt;pre&gt;&lt;hr&gt;"; print_r($_POST); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate epreg echo "&lt;pre&gt;&lt;hr&gt;"; print_r($_GET); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate eprer echo "&lt;pre&gt;&lt;hr&gt;"; print_r($res); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate ds die($sql);

Agora vamos mapear mais alguns atalhos?

"isso aqui é FERA quando tem algum zoiudo vendo o que vc ta fazendo, aperte F8 e a tela fica embaralhada e F8 para voltar ao normal"
map  ggVGg?
"isso é FODA, coloque  o cursor encima de alguma funcao PHP e aperte o F10 e ele vai buscar no site do php.net a definição para ela, sinistro heim?"
map  "vyiw:new:execute "r!lynx --dump http://br.php.net/manual/en/function.".@v.".php":set nonu:1
"sabe aqueles ^M xaropes que ficam no final de arquivos salvos pelo windows? Aperte F2 e suma com eles :-D"
map  :%s/\r//g
"útil para quando vc deixa a tecla CAPS LOCK ativada e nao viu, umas abreviações porretas"
cab W w | cab Q q | cab Wq wq | cab wQ wq | cab WQ wq
Bem, por hora é só, aguarde que teremos outros artigos sobre o vim, tem muita coisa para falar dele, t+
Categories: Console, Linux, Vim Tags: , ,

Meu .screenrc

terminal.gifHá muito tempo uso o screen para janelizar o modo texto, o pontapé inicial foi lendo os artigos do Aurélio como esse e esse há alguns anos atrás ainda na extinta Revista do Linux, também peguei o .screenrc dele e modifiquei para deixar ele mais joiado (IMHO) e o resultado pode ser conferido abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
bind 'R' wrap
bind 'r' resize
bind '+' resize +5
bind '-' resize -5
autodetach on # default: on
crlf off # default: off
deflogin off # default: on
hardcopy_append on # default: off
startup_message off # default: on
vbell on # default: ???
termcapinfo xterm ti@:te@
termcapinfo linux "ve=E[?25hE[?17;0;64c"
defscrollback 1000 # default: 100
silencewait 15 # default: 30
shell bashhardstatus alwayslastline "%{gk} ROOTLINUX %{rk}%c:%s %{y0}%d/%m/%Y %{wk}%?%-Lw%?%{wk}%n%f %{rk}[%{wk}%t%{rk}]%?(%u)%?%{wk}%?%+Lw%? %= %{ck}RENATO MICHNIK DE CARVALHO"
sorendition kG # black  on bold green
activity "%C -&gt; %n%f %t activity!"
bell "------------------------------- %n%f - %t ------------------------------"
pow_detach_msg "BYE"
vbell_msg " *beep* "
msgwait 1
version
msgwait 2
 
# segurança: desligar algumas tecla perigosasbind k
bind ^k
bind '^'
bind z
bind ^z
bind x
bind s
bind ^s
 
# e aqui fica o kill
 
bind 'K' kill
 
### do /etc/screenrctermcap  facit|vt100|xterm LP:G0
terminfo facit|vt100|xterm LP:G0
 
#the vt100 description does not mention "dl". *sigh*
termcap  vt100 dl=5E[M
terminfo vt100 dl=5E[M
 
shelltitle '] |SHELL'#disparando uns programas automaticamente
 
screen -t EMAIL 0 mutt
screen -t IM 1 centericq
screen -t MP3 2 mocp -T green_theme /media/sda5/mp3/musicas.m3u
screen -t RL 3
screen -t MDS 4

Gerando thumbnail com o convert

im.jpgSempre preciso desse comando e as vezes esqueço onde coloquei, como não sou um Julio Neves e sempre me esqueço da sintaxe correta, vou deixar aqui arquivado, vai que seja útil para mais alguem.

ps.: Executando esse comando em seu diretório de imagens, irá gerar thumbnails com 320×320, perfeito para visualizar em seu palm hires :-)

Dependencia: Shell e ImageMagick

for i in *.jpg; do convert -size 320x320 -resize 320x320 $i "thumb-$i" done

Turbinando a raposa

firefox_eats_ie.jpg

Bom, bonito, funcional, seguro e gratuito! Você ainda não usa? Não sabe o que está perdendo.

Sou um usuário ferrenho do firefox, uso ele simplismente 99.99% do tempo, esses 0.01% que sobra é apenas para testar como algum javascript, css, html, layout se comporta em outros navegadores.

Como desenvolvedor web, o firefox me elimina muita dor de cabeça devido a sua compatibilidade com padrões os web que infelizmente alguns navegadores insistem em não seguir, faça um teste, faça uma pesquisa no google por “ie hack” e veja o que estou falando.

Que tal então aumentarmos as funcionalidades do firefox com as diversas extensões disponíveis gratuitamente em seu site oficial?

Plugins

  • Better GMail
    • Ótima extensão com diversos atalhos para utilização do GMail, como eu concentro todas minhas contas de email lá, é uma mão na roda pra mim.
  • CHM Reader
    • Leitor de arquivos CHM
  • ColorZilla
    • Essa extensão é para quem quer saber qual a cor exata que está sendo mostrada em determinada página, muito útil para pegar o código hexadecimal de uma cor
  • CuteMenu
    • Essa extensão é apenas perfumaria, para deixar seu navegador mais atraente e intuitivo adicionando ícones aos menus
  • Download Statusbar
    • Particularmente odeio qualquer tipo de janela extra, mal, mal aceito as janelas de configurações, se bem que mesmo elas, poderiam ser em uma aba.
  • FEBE
    • Extensão para fazer backup das suas extensoes, temas, bookmarks, historicos e tudo mais, muito bom para ter sempre em mãos para quando tiver que usar um firefox “pelado”, basta criar um novo perfil e restaurar o backup.
  • Greasemonkey
    • Essa extensão é porreta, da para modificar a aparencia dos sites e adicionar funcionalidades diversas com as dezenas de scripts disponíveis em userscripts.org
  • History Submenu
    • Ótima maneira de organizar seu histórico.
  • PDF Download
    • Quando você clicar em algum arquivo pdf te dará a opção de salvar, abrir e visualizar como htm
  • WebDeveloper
    • Você desenvolvedor web, não pode deixar de conferir essa extensão, se você achou todas as extensões anteriores supérfulas ou desnecessárias, com certeza irá mudar de opnião quando conhecer essa extensão, ela faz muita coisa, deixa voce editar o css da pagina corrente (qualquer página, do mundo, do universo, mas apenas para visualizar no momento e apenas em seu navegador :-P ), exibe tabelas, ids de classes, desabilita java, muda o method de formulários, preenche formularios, enfim, você tem que conhecer e instalar.
  • Firebug
    • Quem nunca passou por aqueles problemas de javascript, o script para, entra em loop, nao encontra referencia na página e etc? Com o firebug, seus problemas se acabaram-se! Instale e veja o poder que esse trem tem para visualizar e debugar javascripts, css e html.

Você é um google maníaco? Veja essas extensões para ter o google a alguns cliques.

Ah, mensionei que ele é open source e que há zilhões de pessoas espalhadas no mundo, no universo inteiro, ajudando a manter os códigos sempre atualizados, compatíveis com os padrões web e que um bug quando encontrado é arrumado em poucas horas?

Por fim, isso que descrevi não corresponde nem a 1% da capacidade de expansão das funcionalidades do firefox, vale a pena dar uma conferida no site de extensões dele em https://addons.mozilla.org. Um abraço!

Categories: Software Livre Tags:

Carregue seus feeds no bolso

treo650.jpgVocê tem um palm com cartão de memória?
Você assina seus feeds favoritos afim de economizar tempo ao invés de visitar seus sites favoritos um por um?
Você gostaria de estar bem informado em qualquer lugar a qualquer hora?

Minha motivação para a escrita desse artigo é que eu sou um feliz proprietário de um palmOne treo650 e assino mais de 100 feeds e raramente dá tempo para eu acompanhar todas as mudanças que acontecem em meus sites favoritos.

A solução encontrada foi instalar no meu palm, a dupla CardReader1.05pl0 e Plucker e em meu desktop o SunriseXP.

As vantagens desses programas é que são freeware e o SunriseXP é multiplataforma.

Os passos são muito simples:

  • Instale o Plucker
  • Instale o CardReader
    • Após a instalação do CardReader, conecte o palm e o computador atravéz do cabo de sincronismo e inicialize o CardReader. Fazendo isso, seu cartão será transformado em um novo drive, assim como acontece com os pendrives.
  • Instale o SunriseXP

Agora é a hora de converter seus sites para o formato que o palm/plucker possam interpretar, o formato que o SunriseXP cria é o pdb. Utilize o wizard do programa para adicionar quantos feeds quiser, eu utilizo o google reader para acompanhar os sites, foi muito simples exportar do google reader para o SunriseXP, fui em exportar nas preferencias do google reader e exportei no formato OPML e importei no SunriseXP, pronto, so isso, simples assim.

Configurando o SunriseXP

Conf Sunrise Passo1
Criando uma nova lista de documentos
Conf Sunrise Passo2
Vamos salvar os arquivos em um diretório do nosso desktop
Conf Sunrise Passo3
Essa é a configuração que escolhi e que roda perfeitamente em meu treo650, agora é so clicar em next e finish
Conf Sunrise Passo4
Para chegar nesse ponto, basta ir em File->New Item Wizard e marcar a opção que está na imagem
Conf Sunrise Passo5
Caso você tambem use o google reader, exporte a sua lista de feeds como arquivo [[OPML]] e carregue ele pelo programa
Conf Sunrise Passo6
Selecione os feeds que deseja converter
Conf Sunrise Passo7
Selecione a categoria desejada
Conf Sunrise Passo8
Pronto, agora basta selecionar os feeds que deseja que seja atualizado e pronto, seus arquivos .pdb estão gerados no diretório escolhido anteriormente na configuração da lista de documentos.
Agora é a hora que entra o nosso CardReader, abra o aplicativo e mande todos os arquivos .pdb criados pelo SunriseXP para o diretório PALM/Programs/Plucker (se não existir, crie)
Pronto, nesse momento, basta abrir o Plucker e você deverá ter essa visão:
Plucker1Plucker2 Plucker3 Plucker4
Já ia me esquecendo, para os preguiçosos de plantão, esse é o meu arquivo .sdl que é gerado pelo SunriseXP que contém todos os feeds que eu leio diariamente.
Bom, nesse primeiro artigo, espero que tenha me saido bem, prometo melhorar :-)
Categories: Mobile, Palm, Software Livre Tags: ,