Как использовать Emacs с Python - PullRequest
14 голосов
/ 08 декабря 2009

Я новичок в emacs и хочу использовать emacs для разработки на python. Я использую Ubuntu 9.10. Я разочарован тем, что Emacs работает с Python. Я использую GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK + версия 2.18.0).

Вот что я сделал. *

Emacs поставляется с режимом python, но это сбивает с толку, есть два типа режима: один - python-mode.el, а другой - python.el. Я использую Emacs 23, так что мой Python.el (я думаю). Мне тоже нужен режим Python? Завершение кода не работает, когда я нажимаю M-Tab, вместо этого работает оконный менеджер. Я попробовал Esc-Tab, но там написано «Нет совпадений». Как я могу включить завершение кода?

После этого я установил Romamacs

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. Когда я пытаюсь повторить Code Assist из меню он говорит "Завершение для х:" ничего, кроме пустого набора. Как можно заставить завершение кода в Emacs Python работать?

Затем я скачал что-нибудь .el , что-нибудь-config, what-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 что-нибудь» снова, я не получил соответствия (я догадался, может ли мне сработать комбинация C-ca (сначала control-a, затем e), она говорит, что она не определена). Не могли бы вы объяснить завершение кода для python с ясными объяснениями (шаг за шагом) кому-то глупому, как я. Благодарю. Изменить: я могу Emacs работать с Python по ссылке. Спасибо всем за ответ

Ответы [ 4 ]

3 голосов
/ 08 декабря 2009

Я ничего не пробовал, и мне не очень повезло с веревкой (гигантское исходное дерево заставляет мои emacs зависать при сохранении любого файла). Вместо этого я считаю, что завершение по умолчанию работает достаточно хорошо для моих целей.

Связывание клавиш завершения по умолчанию: M-/. При этом запускается dabbrev-expand, которое расширяет текущее слово до «самого последнего предшествующего слова, для которого это префикс». Он не идеален: он не будет анализировать типы и не будет искать в импорте, но он работает в 90% случаев.

(Вам придется деактивировать веревку.)

2 голосов
/ 08 декабря 2009

Я думаю, вы делаете хотите, чтобы пакет python-mode был установлен! Представляется, что варианты Ropemacs предназначены только для рефакторинга, а Pymacs допускает использование Python в качестве языка расширения Emacs - ни то, ни другое не требуется для стандартной поддержки.

0 голосов
/ 08 декабря 2009

Emacs работал из коробки для меня на Ubuntu 9.10.

Пробовали ли вы C-c TAB (обновить импорт) перед попыткой завершения кода? Я не думаю, что это сработает, если ты не сделаешь это.

0 голосов
/ 08 декабря 2009

Я не совсем уверен, что вам нужно было сделать что-то необычное, чтобы заставить разработку Python работать. В gNewSense deltah (форк Ubuntu 8.04) все, что я делал, это редактировал файл .py с первой строкой:

#!/usr/bin/python

А затем Emacs просто выясняет это и предоставляет вам опции режима python. Мне не нужно было устанавливать ничего, кроме Emacs.

Опять же, это может оказаться бесполезным, поскольку gNewSense по умолчанию предварительно устанавливает Emacs. Я должен сделать это на одной из моих ванильных установок Ubuntu.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...