associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "TabCompleta"

Diferenças entre as versões de 3 e 16 (13 versões de distância)
Revisão 3e 2004-01-09 17:42:54
Tamanho: 1559
Editor: 5-173
Comentário:
Revisão 16e 2012-04-26 13:45:56
Tamanho: 2961
Editor: RudaMoura
Comentário:
Deleções são marcadas assim. Adições são marcadas assim.
Linha 1: Linha 1:
Uma dica legal para quem gosta de xeretar no ambiente interativo do Python é fazer a tecla <TAB> complentar automagicamente nomes de funções, métodos e outros. = 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.
Linha 5: Linha 7:
Ponha no seu ''$HOME/.bash_profile'' ou ''$HOME/.profile'' (conforme o caso): 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):
Linha 7: Linha 10:
export PYTHONSTARTUP="$HOME/.pythonrc" PYTHONSTARTUP="$HOME/.pythonrc"
export PYTHONSTARTUP
Linha 10: Linha 14:
Agora edite o arquivo ''$HOME/.pythonrc'' e acrescente as seguintes linhas: Agora edite o arquivo {{{$HOME/.pythonrc}}} e acrescente as seguintes linhas:
Linha 12: Linha 17:
#!python
Linha 27: Linha 33:
Use então sys.ar<TAB> para complentar sys.argv, iqual ao comportamento do Bash ou de outros aplicativos que usam a biblioteca readline. Use então {{{sys.ar<TAB>}}} para completar sys.argv, igual ao comportamento do Bash ou de outros aplicativos que usam a biblioteca {{{readline}}}.
Linha 29: Linha 35:
NOTAS:
  * A variável de ambiente ''$PYTHONSTARTUP'' deve conter o nome de um arquivo que o Python vai ler e interpretar antes de entrar no prompt interativo. Neste caso, escolhi o nome .pythonrc mas poderia ser qualquer outro.
== 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')
}}}
Linha 32: Linha 41:
  * Se não funcionar, veja se a variável $PYTHONSTARTUP está definida com ''echo $PYTHONSTARTUP''. Lembre-se que o .bash_profile (ou .profile) é lido só pelo shell de login, isso quer dizer que se você entrou no ambiente gráfico, editou o arquivo e abriu um novo shell para testar é bem provável que não funcione, saia do seu ambiente, entre novamente e teste. == NOTAS ==
  * A variável de ambiente {{{$PYTHONSTARTUP}}} deve conter o nome de um arquivo que o Python vai ler e interpretar antes de entrar no prompt interativo. Neste caso, escolhi o nome {{{.pythonrc}}} mas poderia ser qualquer outro.
Linha 34: Linha 44:
  * Rodando ''python -E'' a variável $PYTHONSTARTUP não é lida.   * Se não funcionar, veja se a variável {{{$PYTHONSTARTUP}}} está definida com {{{echo $PYTHONSTARTUP}}}. Lembre-se que o {{{.bash_profile}}} (ou {{{.profile}}}) é lido só pelo shell de login, isso quer dizer que se você entrou no ambiente gráfico, editou o arquivo e abriu um novo shell para testar é bem provável que não funcione, saia do seu ambiente, entre novamente e teste.
Linha 36: Linha 46:
--[[BR]]   * Rodando {{{python -E}}} a variável {{{$PYTHONSTARTUP}}} não é lida.

''Ao procurar mais detalhes sobre o rlcompleter (o módulo usado nesse exemplo acima, acabei encontrando o [[http://codespeak.net/rlcompleter2/index.cgi?home|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 [[http://codespeak.net/rlcompleter2/index.cgi?install|instalação]] -- SergioBruder''

''Tem tambem o [[http://ipython.scipy.org/|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''
----

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

  • A variável de ambiente $PYTHONSTARTUP deve conter o nome de um arquivo que o Python vai ler e interpretar antes de entrar no prompt interativo. Neste caso, escolhi o nome .pythonrc mas poderia ser qualquer outro.

  • Se não funcionar, veja se a variável $PYTHONSTARTUP está definida com echo $PYTHONSTARTUP. Lembre-se que o .bash_profile (ou .profile) é lido só pelo shell de login, isso quer dizer que se você entrou no ambiente gráfico, editou o arquivo e abriu um novo shell para testar é bem provável que não funcione, saia do seu ambiente, entre novamente e teste.

  • Rodando python -E a variável $PYTHONSTARTUP não é lida.

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