Arquivo

Arquivo da Categoria ‘Console’

Mudando o diretório dos arquivo .swp e de backup do Vim

vim.gifSe você curte o vim e controle de versão cvs ou svn já deve ter passado pela situação de ver vários arquivos .swp ou até mesmo os de backup do tipo “arquivo~” quando você está comparando a sua cópia local com a cópia remota e ter que ficar “pulando” esses arquivos na hora do commit, convenhamos, é um processo meio chato.

Portanto, com a inserção de 2 novas linhas no seu .vimrc (_vimrc, _gvimrc no windows) você resolve o problema.

set directory=/home/usuario/.vimbkp,/tmp "nesse caso você terá 2 cópias dos arquivos .swp
set backupdir=/home/usuario/.vimbkp,/tmp "nesse caso você terá 2 cópias dos arquivos "arquivo~" de backup
Categories: Miscelânea, Vim Tags:

Duas dicas rápidas para o vim

Para quem gosta daquele esquema de fechar automáticamente parênteses, chaves, colchetes, aspas duplas e aspas simples, que vários editores possuem. Basta adicionar o seguinte trecho de código ao seu ~/.vimrc

inoremap  { {<CR>}<C-O>
inoremap [ []<LEFT>
inoremap ( ()<LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>

Agora se você é fã do famoso line highlight, adicione também ao seu ~/.vimrc

set cursorline
hi CursorLine ctermbg=blue cterm=none
Categories: Vim Tags:

Sidebar folder list no mutt? Sim senhor!

mutt-icon2.pngPara quem não conhece, o mutt é um cliente de email que roda em console, muito bom, flexível, configurável, usável, otimizável e *ável.

Navegando na net procurando por novidades sobre o mutt, me deparei com o site do Lunar-Linux em que um maluco criou um path para que seja exibido do lado esquerdo do mutt um sidebar com a lista das suas “pastas” de email que você pode conferir na imagem abaixo.

mutt-sidebar2.jpg

Notem que além dele listar as “pastas” em sua esquerda ele conta quantas mensagens antigas e quantas novas há armazenadas, lembrando que eu utilizo o formato maildir de arquivamento das minhas mensagens ao invés do formato mbox.

A instalação ocorreu sem nenhum problema, segui exatamente o que o autor diz no site:

1
2
3
4
5
6
$ wget -q -O - ftp://ftp.mutt.org/mutt/devel/mutt-1.5.16.tar.gz | tar xvfz - $ cd ./mutt-1.5.16
$ wget -q -O - http://lunar-linux.org/~tchan/mutt/patch-1.5.16.sidebar.20070704.txt | patch -p1
$ ./configure
$ make
$ ./mutt
$ make install (optional, <strong>you need to be root for this</strong>)

Após a instalação do mutt devidamente patcheado, vamos editar o seu ~/.muttrc ou ~/.mutt/muttrc, depende de como ta sua configuração, e adicionar as seguintes linhas:

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
# set up the sidebar, default not visible
set sidebar_width=30
set sidebar_visible=no
set sidebar_delim='|'
 
# which mailboxes to list in the sidebar
mailboxes =inbox =ml
 
# color of folders with new mail
color sidebar_new yellow default
 
# ctrl-n, ctrl-p to select next, prev folder
# ctrl-o to open selected folder
bind index \CP sidebar-prev
bind index \CN sidebar-next
bind index \CO sidebar-open
bind pager \CP sidebar-prev
bind pager \CN sidebar-next
bind pager \CO sidebar-open
 
# I don't need these.  just for documentation purposes.  See below.
# sidebar-scroll-up
# sidebar-scroll-down
 
# b toggles sidebar visibility
macro index b 'toggle sidebar_visible'
macro pager b 'toggle sidebar_visible'
# Remap bounce-message function to "B"
bind index B bounce-message
 
# Mario Holbe suggests:
# macro index b 'toggle sidebar_visible'
# macro pager b 'toggle sidebar_visible'
#

Modifique o que achar necessário, agora reinicie o mutt e aperte a tecla “b” e… voilà! O mutt agora possui a lista dos diretórios como mostrado na imagem acima :-)

Categories: Console, Linux, Mutt Tags: , ,

Utilizando folding no vim

vim.gifVamos imaginar o seguinte, você abrindo um arquivo com diversas linhas, diversas “funções/métodos” e se não estiver com as marcações para folding, você verá que a apresentação não é uma das melhores.

Agora abra o arquivo MDB2.php que está no pacote PEAR::MDB2 que com suas mais de 4.000 linhas, devidamente marcados com os foldings, olha como fica joiado

folding.jpg

Mas como fazer para que seu arquivo fique assim? Basta adicionar ao seu .vimrc o seguinte:

1
set fdm=marker

Existem diversas formas de marcações para o folding, não vou descrever todas as formas, apenas a que eu uso, acho interessante e prática, mas cada um pode utilizar a que achar melhor ok.

A geração dos foldings são muito fáceis, primeiro coloque o vim em modo visual <ESC>v e selecione a área que deseja que seja criado o folding, depois basta apertar as telcas zf e pronto, o folding está criado. Para abrir ou fechar o folding, use za, quer abrir todos os foldings zR e para fechar zM. Basicamente e muito simplificado os comandos mais utilizados seriam esses (IMHO).

Uma coisa que gosto de fazer em meus códigos é colocar um pequeno comentário na mesma linha da declaração da função e logo após criar o folding, o resultado é ótimo, veja, como fica organizado o código.

folding-php1.jpg

folding-php21.jpg

Como disse, da para fazer o folding de diversas maneiras, publiquei a maneira que eu acho mais simples e prática, se você tiver algo a acrescentar ao artigo, poste nos comentários :-) T+

Categories: Console, Linux, Vim Tags: , , ,

Integrando o manual do php ao VIM

vim.gifContinuando com a série de artigos sobre o vim, vamos fazer algo simplismente fodástico, integrar o manual do php! Que tal você simplismente digitar

1
:help funcao_php

e ele mostrar exatamente a função no manual? Joia não? Então, para isso basta você adicionar ao seu .vimrc as seguintes linhas:

1
2
3
if has("autocmd")
autocmd BufNewFile,Bufread *.php,*.php3,*.php4 set keywordprg="help"
endif

Feito isso, diga para o vim onde ta seus manuais (você pode ter mais de um, é claro, e também de outras linguagens), no caso, o do php que é a linguagem que eu utilizo diariamente, portanto foi o convidado da vez.

1
helptags /home/USUARIO/.vim/doc

Agora so falta o manual, que como sou um cara legal, vou deixar tudo mastigado para você, clique aqui e salve o arquivo no seu ~/.vim/doc

Pronto! Tudo certo, faça um teste agora, abra um arquivo php e digite :help funcao<cr> e pronto, você terá uma lista das funções, e digo mais, se você seguiu o artigo anterior que falo sobre utilizar a tecla TAB para autocompletar, você poderá digitar apenas o início da função e terá uma lista de funções correspondentes, como na imagem abaixo

vim-helptags.jpg

Ah, mas você gostaria que o seu manual estivesse com a última atualização do mundo, do universo e ainda com todos os comentários? Então, adicione a linha abaixo ao seu .vimrc e coloque o cursor encima de uma função php e aperte F10 e veja, lembrando que há a dependencia do navegador para console lynx.

1
map  "vyiw:new:execute "r!lynx --dump http://br.php.net/manual/en/function.".@v.".php":set nonu:1

Pronto, espero que tenham gostado, T+

Categories: Console, Linux, Vim Tags: , , ,

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