TabCompleta

Tab Completion

Uma dica legal para quem gosta de xeretar no ambiente interativo do Python é fazer a tecla <TAB> completar automagicamente nomes de funções, métodos e outros.

Como se faz isso? É simples. Acompanhe.

Ponha no seu $HOME/.bash_profile ou $HOME/.profile ou ainda $HOME/.bashrc (conforme o caso, não esqueça de adicionar permissão de execução ao arquivo):

PYTHONSTARTUP="$HOME/.pythonrc"
export PYTHONSTARTUP

Agora edite o arquivo $HOME/.pythonrc e acrescente as seguintes linhas:

   1 import readline
   2 import rlcompleter
   3 readline.parse_and_bind('tab: complete')

Abra um novo shell, rode o Python e faça o seguinte teste:

>>> import sys
>>> sys.<TAB><TAB>
sys.__class__             sys.argv                  sys.maxint
sys.__delattr__           sys.builtin_module_names  sys.maxunicode
...

Use então sys.ar<TAB> para completar sys.argv, igual ao comportamento do Bash ou de outros aplicativos que usam a biblioteca readline.

Mac OS X

Usuários de Macintosh no Snow Leopard e Lion devem trocar a linha final do arquivo .pythonrc para a seguinte linha:

readline.parse_and_bind('bind ^I rl_complete')

NOTAS

Ao procurar mais detalhes sobre o rlcompleter (o módulo usado nesse exemplo acima, acabei encontrando o rlcompleter2, que achei mais interessante por imprimir o doc string da funcao explicando os parâmetros, por exemplo, funcao(<TAB> mostra informações sobre a funcao, como parâmetros, etc. Maiores detalhes na página sobre instalação -- SergioBruder

Tem tambem o IPython, que tem alem de tab completion e history ja configurados por padrao, tem um monte de outras funcionalidades, como colorizacao de tracebacks por exemplo -- SidneidaSilva

Uma adição interessante é a possibilidade de manter um histórico dos últimos comandos utilizados de dentro do interpretador. O link http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/473900 contém informações de como fazer isto -- RudaMoura


RudaMoura

TabCompleta (editada pela última vez em 2012-04-26 13:45:56 por RudaMoura)