Dois modos Python

10

Eu tenho tentado configurar o Emacs para usar o modo Python adequado. Para esse fim, li alguns tutoriais. O mais importante é este . O tutorial usa o python-modepacote. No entanto, quando o instalo através do gerenciador de pacotes ( M-x package-install RET python-mode RET), não consigo usar os atalhos disponíveis para esse pacote.

Abri um arquivo Python para testar alguns atalhos como C-c |, que devem avaliar a expressão selecionada. No entanto, para minha surpresa, eles não funcionaram, então decidi descobrir outros tutoriais sobre o assunto. No entanto, na minha linha de modo, eu vejo Python, então há alguns python-modehabilitados.

No wiki do emacs, encontrei o seguinte snippet para adicionar ao meu init.elarquivo:

 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))

Quando adiciono isso, ele python-moderealmente funciona e os atalhos mencionados também funcionam.

Não entendo corretamente o que isso faz mais do que executar manualmente M-x python-modeem um buffer de arquivo python.

Quando removi todos os rastreios da python-modeminha pasta .emacs e abri um arquivo python, notei que ainda tinha um python-mode. Então, meu palpite é que existem dois python-modes?

Eu acho que eu quero a python-modepartir https://launchpad.net/python-mode . Parece que ele está presente no repositório de pacotes, mas não sei como remover o outro modo Python.

Alguém poderia elaborar por favor?

Christophe De Troyer
fonte
1
Se você deseja usar o Ipython, o ein é um excelente pacote. Ele fornece o equivalente ao notebook Ipython no Emacs. Demonstrações aqui . Também há demonstrações antigas do repositório original, agora sem manutenção.
Tu Do
Esse é um texto completo para uma pergunta bastante simples. ;-) Seria bom reduzi-lo um pouco.
Malabarba 29/05
Concordo. Eu estava sendo minucioso como outros sites da SE pensaram em mim. Vou apará-lo um pouco o mais rápido possível.
Christophe De Troyer

Respostas:

10

Bem, sim, existem dois modos python: o que acompanha o emacs python.ele o outro python-mode.elque é realmente esse: https://launchpad.net/python-mode

Seu tutorial referenciou o posterior.

Seu python-modesnippet de configuração faz o seguinte:

;; by default, the function 'python-mode is associated with
;; the package python.el. The following changes that to python-mode.el:
(autoload 'python-mode "python-mode" "Python Mode." t)

;; open py files with python-mode
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

;; sets python interpreter mode to be python-mode
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
Adobe
fonte
Então, removo o python.el ou preciso combiná-los? Ou existe um nome específico para o último modo python? Quero que meu init.elportátil seja portátil, portanto, a remoção python.elpode não ser uma opção.
Christophe De Troyer
Basta instalar o python-mode.el e configurá-lo com o snippet que você postou. (ou leia o arquivo LEIA-ME)
Adobe
Entendo o que o comando faz, em combinação com esta resposta: superuser.com/questions/108233/… Obrigado por elaborar.
Christophe De Troyer
7

Como mantenedor do python-mode.el e, além de responder por @Adobe: python-mode.el não descarrega comandos do python.el - ambos estão disponíveis. Devido ao nome do python-mode-map - que é usado por ambos e não pode ser alterado sem quebrar muitas coisas - as combinações de teclas e o menu são entregues a partir do último carregado.

C-c |chama py-execute-regione funciona muito bem aqui. Talvez python.el tenha sido carregado posteriormente e a ligação tenha desaparecido. Chamar o comando via Mx pode ser uma opção que. Em caso de problemas, considere um relatório de erro em https://bugs.launchpad.net/python-mode

Andreas Röhler
fonte