Учебное пособие по русскому языку

Есть много сайтов с инструкциями по установке ropemacs, но до сих пор я не мог найти никаких инструкций о том, как использовать его после его установки. У меня он установлен, или, по крайней мере, кажется, Emacs имеет меню "Веревка" в верхней строке меню. Что теперь? До сих пор я мог использовать только "Показывать документацию" (по умолчанию C-c d). Попытка использовать кодовую помощь (которая автозаполняется, я полагаю?) Только заставляет Emacs спрашивать о "корневой папке проекта Rope" (что это?) В минибуфере, а затем ничего не показывать.

Итак, как только ropemacs установлен, каковы шаги, чтобы увидеть его в действии на некоторых простых скриптах python? Что-то вроде "если у вас есть этот script в ваших emacs и поставьте мигающий квадрат здесь и нажмите это, он сделает это" будет ответом ".

(Я думал, буду ли я спрашивать об этом или нет в течение некоторого времени, потому что никто другой, похоже, не имеет той же проблемы)

Ответ 1

Ну, сначала вам нужно выбрать корневую папку проекта. Совсем просто, это папка на верхнем уровне вашего проекта или текущая папка, если вы имеете дело с одним файлом. После того, как вы выбрали корневую папку, будут работать другие параметры, такие как помощь кода, показ документации, переключение на другие символы и т.д.

Для полной выгоды от ropemacs, я предлагаю получить autocomplete.el, поместив его в ~/.emacs.d, а затем добавив это к ваш .emacs

(add-to-list 'load-path "~/.emacs.d/")
(add-to-list 'load-path "~/.emacs.d/auto-complete-1.2")
(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))
(require 'python-mode)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)

(require 'auto-complete)
(global-auto-complete-mode t)

Это предполагает, что вы устанавливаете автозаполнение в ~/.emacs.d/auto-complete-1.2. После этого вы автоматически получите автозаполнение после ввода нескольких символов слова или символа.

Вы можете изменить файл ROOT/.ropeproject/config.py, чтобы добавить дополнительные каталоги в путь поиска каната, чтобы обеспечить лучший автозаполнение.

EDIT: две из самых важных функций для меня - это просмотр документации и прямое переключение на определение функции. Это зависит от правильной настройки пути поиска каната для вашего проекта, как указано выше.

Документация. Поместите курсор над символом (имя функции, имя класса и т.д.) и выполните:

C-c d

Это покажет вам docstring для соответствующего символа.

Переход к определению: поместите курсор над символом (имя функции, имя класса и т.д.) и выполните:

C-c g

Это немедленно откроет файл, в котором находится символ, и перейти к началу определения. Это отлично подходит для времен, когда документация разрежена, и вы хотите увидеть фактический код. Кроме того, это действительно приятно для навигации внутри вашего собственного кода.

Найти вхождения:

C-c f

Интеллектуальный поиск по всему проекту для символа в курсоре.

Кодовая помощь:

M-/

Просто введите первые символы функции, класса и т.д., и это покажет список возможных завершений. Обратите внимание, что из-за природы питона он не всегда будет полным списком.

Рефакторинг: В Rope- > Refactor имеется немало опций. Это лучше организовать ваш код. Их использование должно быть в основном самоочевидным; в общем, выберите область кода, которую вы хотите реорганизовать, затем выберите команду.

Edit: В ответ на комментарий ниже, здесь точно, как добавить другие пути к вашему пути python, так что автозаполнение будет искать эти символы.

prefs.add('python_path', '~/path/to/virtualenv/lib/python2.6/site-packages')

Это происходит в .ropeproject/config.py

Ответ 2

Наилучшая информация об использовании, которую я нашел, является readme в источнике ropemacs:

https://github.com/python-rope/ropemacs

Ответ 3

Вы можете установить корневую папку с помощью rope-open-project. После того, как вы установили корневой проект, будет создан каталог .ropeproject.

Внутри файла config.py есть крючки, где вы можете запускать (python) код после установки проекта. Функция project_opened(project): является хорошим местом для запуска кода. Я обычно активирую виртуальную среду imp.load_source('/path-to-env/activate_this.py'), так что я могу получить исходный охват для других libs в виртуальном env.

Ответ 4

Для общего использования библиотеки канатов, от которой зависит ropemacs, проверьте:

Обзор канатов

В нем подробно описывается, что делает каждый из рефакторингов, например метод извлечения. Обратите внимание, что, по мнению автора, этот документ немного устарел. Тем не менее, он должен обеспечить достаточно интро для функций канатов, чтобы начать работу.

Чтобы выполнить команды ropemacs в Emacs, вы можете попробовать одно или несколько из следующих действий:

  • Используйте раздел "Keybinding" в ссылка README docs от freyley answer в качестве руководства по изучению отображения.
  • Если вы не можете вспомнить привязки клавиш, выполните M-x rope-<specific command name> и заполните связанное с рефакторингом имя. Для Например, метод извлечения будет M-x rope-extract-method.
  • Выберите в Emacs <menu-bar> -> Rope. Например, для метода извлечения выберите <menu-bar> -> Rope -> Refactorings -> Extract Method. Он также покажет вам связанные привязки клавиш (например, C-c r m)