#!/usr/bin/python
# posfixa.py using PLY - http://www.dabeaz.com/ply
# Elias Junior <eliasdorneles (a) gmail com
tokens = ('NUMBER', 'OPERATOR')
PILHA = []
def calc_pos(b, a, op):
if op == '+': return a + b
elif op == '-': return a - b
elif op == '*': return a * b
elif op == '/': return a / b
elif op == '%': return a % b
else: return 0
def t_NUMBER(t):
r'\d+(\.\d+)?'
PILHA.append(float(t.value))
def t_OPERATOR(t):
r'[+-/*%]'
try:
PILHA.append(calc_pos(PILHA.pop(), PILHA.pop(), t.value))
except IndexError:
print 'Faltando operandos!'
t_ignore = ' \t'
def t_error(t):
print "Caractere invalido: '%s'" % t.value[0]
t.lexer.skip(1)
from ply import lex
lexer = lex.lex()
if __name__ == '__main__':
for e in ['24 10 % 3 +', '12 23 + 4 5 * +']:
lexer.input(e)
lexer.token()
print PILHA.pop()
BTW, non tá morto quem peleia… nem quem tá sem computador!
![]()
tó aí umas idéia de ataio do emacs pros vimmers véio usarem no bash:
<C-a> e <M-d> para editar a primeira string do último item do histórico:
$ pgrep meuprocesso
12345
$ <C-p><C-a><C-f><M-d>kill<C-j>
$
<C-p> pra acionar o último item do histórico, <C-a> pra levar o cursor ao início da linha, <C-f> para avançar o primeiro caracter (p em pgrep), <M-d> pra apagar o resto da palavra, “kill” pra completar o comando “pkill” e finalmente <C-j> pra executar (pode ser o véio ENTER, tomém, ma tamo inovando).
sim, o <C-f> está só por abobrice, digitar pkill é mais fácil que <C-f> e depois digitar “kill”. ma foi só pa enchê lingüiça mermo.
![]()
pgrep/pkill é só uma idéia, tem outras sequências como wget/mplayer pros caras multimídia, bzip2/tar pra quem non gosta da opção j do tar, e sei lá, fugiu as idéia agora.
<C-r> pra buscar pra trás:
$ wget -bc http://example.com/quarque_abobra.avi
# .... varios comandos depois
$ <C-r>abobra<C-a><A-d>mplayer<C-j>
$
se emocionô? man readline pra mais!
ah, usuários de gnome-terminal não podem esquecê de desativá as técra de acesso ao menu, como já expricado antes aqui neste post comprido.
bai, que post mai cheio de <>’s… sorte que o ubiquity tem a escape-html-entities!
ah, sim, o ubiquity… eu poderia falá sobre ele, ma vo deixá pra quem conhece o bicho meior que eu. ma isprimenta ae! vá que seja iluminado…
![]()
botemo!
há um tempinho já, uso uns mapeamentos pra trocar de abas no Vim do mermo jeito que se faz no Fáirefóque:
map <A-1> 1gt map <A-2> 2gt map <A-3> 3gt map <A-4> 4gt map <A-5> 5gt map <A-6> 6gt map <A-7> 7gt map <A-8> 8gt map <A-9> 9gt imap <A-1> <ESC>1gta imap <A-2> <ESC>2gta imap <A-3> <ESC>3gta imap <A-4> <ESC>4gta imap <A-5> <ESC>5gta imap <A-6> <ESC>6gta imap <A-7> <ESC>7gta imap <A-8> <ESC>8gta imap <A-9> <ESC>9gta
não funfa no vim dentro do gnome-terminal porque este usa os mesmos atalhos para as abas dele. funfa no Gvim, e no vim em xterm e console, though.
#! /bin/bash
# um dia a gente cria vergonha na cara e cria algo util...
t=${1:-1}
sleep $(($t * 60));
# skrik!
while :; do
echo -n $'\a'
sleep 0.1
done

