Как использовать Emacs с Python
Я новичок в emacs, и я хочу использовать emacs для разработки python. Я использую Ubuntu 9.10. Я расстроен тем, что emacs работает с python. Я использую GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK + Version 2.18.0).
Вот что я сделал.
*
Emacs поставляется с режимом python, но это путается, существует два типа режима: python-mode.el, а другой - python.el. Я использую emacs 23, поэтому мой python.el(я думаю). Нужен ли мне режим python? Завершение кода не работает, когда я нажимаю M-Tab, а не работает оконный менеджер. Я попробовал Esc-Tab, но он говорит "Нет совпадения". Как включить завершение кода?
После этого я установил ropemacs
sudo aptitude install python-ropemacs
Затем я создал файл .emacs в ~/.emacs
и я добавил следующие файлы .emacs
(require 'pymacs)
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)
Затем, когда я нажимаю M-/(Alt-/), он не работает, когда я выхожу из меню Rope- > Code assist, он открывает диалоговое окно файла для выбора корневой папки проекта. Я выбираю текущую папку, в которой есть код python. Когда я снова попробую Кодовую помощь из меню, это говорит
"Завершение для x:" ничего, кроме пустого набора. Как сделать работу с кодом emacs python завершенным?
Затем я загрузил anything.el, что-нибудь-config, anything-match-plugin в папку ~/.emacs.d. Затем я добавил следующее строки в файл .emacs
(require 'anything-config)
(require 'anything-match-plugin)
(global-set-key "\C-ca" 'anything)
(global-set-key "\C-ce" 'anything-for-files)
Угадайте, что он не сработал. Я попробовал "M-x anything" снова, я получаю Нет совпадения (я догадался, может ли я использовать комбинацию C-ca (First control-a then e), которая говорит, что она не определена). Не могли бы вы объяснить завершение кода для python с ясными объяснениями (шаг за шагом) кому-то манекену как мне. Благодарю.
Изменить: я могу emacs работать с python со ссылкой. Спасибо всем за ответ
Ответы
Ответ 1
Я ничего не пробовал, и мне не повезло с веревкой (гигантское дерево источника заставляет мои emacs висеть на любом сохранении файла). Вместо этого я считаю, что выполнение по умолчанию работает достаточно хорошо для моих целей.
Ключевое слово завершения по умолчанию M-/
. Это запускает dabbrev-expand, который расширяет текущее слово до "последнего, предшествующего слова, для которого это префикс". Он не идеален: он не будет анализировать типы и не будет искать импорт, но он работает в 90% случаев.
(Вам нужно отключить веревку.)
Ответ 2
Я думаю, что вы хотите установить пакет python-mode
! Варианты ropemacs, по-видимому, предназначены только для рефакторинга, а pymacs позволяет Python как язык расширения Emacs - ни один из них не нужен для стандартной поддержки.
Ответ 3
Я не уверен, что вам нужно было что-то сделать, чтобы заставить Python работать. В gNewSense deltah (fork Ubuntu 8.04) все, что я сделал, это редактировать файл .py с первой строкой:
#!/usr/bin/python
И затем Emacs просто это вычисляет и предоставляет вам параметры режима python. Мне не нужно было устанавливать ничего кроме Emacs.
Опять же, это может быть не полезно, поскольку gNewSense предварительно устанавливает Emacs по умолчанию. Мне нужно будет сделать это на одной из моих установок Ubuntu для ванили.
Ответ 4
Emacs разработал у меня версию на Ubuntu 9.10.
Попробовал ли вы C-c TAB
(обновить импорт) перед тем, как попробовать выполнить завершение кода? Я не думаю, что это сработает, если вы этого не сделаете.