Підручник з ВИКОРИСТАННЯ ropemacs


78

Існує багато сайтів з інструкціями щодо встановлення ropemacs, але до цих пір я не міг знайти жодного з інструкціями щодо того, як користуватися ним після того, як він уже встановлений. Я його встановив, або принаймні так здається, у Emacs є меню "Rope" у верхній панелі меню. Що тепер? Поки що я міг використовувати лише "Показати документацію" (Копія за замовчуванням). Спроба використовувати допоміжний код (який, як я припускаю, автоматично заповнюється) змушує Emacs запитувати про "кореневу папку проекту канату" (що це?) У мінібуфері, а потім нічого не показувати.

Отже, як тільки ropemacs встановлено, які кроки можна побачити в дії на деяких простих скриптах python? Що - щось на кшталт «якщо у вас є цей скрипт в Emacs і поставити миготливий квадрат тут і натисніть це , це , що " буде відповідь.

(Я деякий час думав, запитати це чи ні, бо ні в кого іншого, схоже, не виникає такої ж проблеми)

Відповіді:


63

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

Щоб отримати повну користь від 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

Це покаже вам документацію для відповідного символу.

Перехід до визначення : Наведіть курсор на символ (ім'я функції, ім'я класу тощо) і виконайте:

C-c g

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

Знайти випадки :

C-c f

Розумний пошук у всьому вашому проекті символу біля курсору.

Код допомоги :

M-/

Просто введіть перші символи функції, класу тощо, і це покаже список можливих завершень. Зверніть увагу, що через природу python, це не завжди буде повним списком.

Рефакторинг : Є досить багато варіантів у розділі Мотузка-> Рефактор. Вони краще організують ваш код. Способи їх використання повинні бути здебільшого зрозумілими; загалом, виберіть область коду, яку ви хочете рефакторировать, а потім виберіть команду.

Редагувати : У відповідь на коментар нижче, ось саме те, як додати інші шляхи до вашого шляху python, щоб автозаповнення також шукало ці символи.

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

Це входить .ropeproject/config.py


6
Це зовсім не допомагає відповісти на питання. Повторіть, як ви використовуєте ropemacs. Ви навіть не сказали, як вибрано кореневу папку.
Blokeley

5
по-справжньому, ви вже знаєте, як вибрати кореневу папку проекту. Emacs вже підказував вам це ...
Метью Талберт,

2
Крім того, я дав вам найкращу пораду щодо "як користуватися" ropemacs. На мій погляд, найкращий спосіб використовувати його - це використовувати разом із автозаповненням. Коли ви це робите, вам навіть не потрібно знати про це багато, це просто на задньому плані, де ви знайдете завершення.
Метью Талберт,

2
Там я додав кілька основних команд. Справді, це набагато, набагато краще, ніж будь-яка порада, яку я знайшов щодо того, як ним користуватися, тож сподіваюся, це допоможе.
Метью Талберт,

1
О, я зрозумів. Мені просто потрібно натиснути TAB в міні-буфері після того, як я натиснув M- /, або ввести частину символу, який я шукаю, а потім натиснути TAB. До того, як я намагався використовувати M- / відразу після того, як набрав, наприклад, "Image.", Тоді відображалося "Completion for Image .:" і нічого іншого, що, на мою думку, означало, що він не міг знайти жодного завершення.
Headcrab


10

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

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


більше інформації про налаштування virutalenvs.
scytale

3

Для загального використання мотузкової бібліотеки, від якої залежить ropemacs, перевірте:

Огляд мотузки

У ньому докладно описано, що робить кожен з рефакторингу, такий як метод вилучення . Зауважте, що на думку автора, цей документ трохи застарів. Однак він повинен надати достатньо ознайомлення з особливостями мотузок, щоб розпочати.

Щоб виконати команди ropemacs в Emacs, ви можете спробувати одне або кілька з наступного:

  1. Скористайтеся розділом « Прив’язка клавіш» у посиланні на документи README із відповіді Фрейлі як керівництво для вивчення відображень.
  2. Якщо ви не пам'ятаєте прив'язок клавіш, виконайте M-x rope-<specific command name>та заповніть відповідне ім'я рефакторингу. Наприклад, метод екстракту буде M-x rope-extract-method .
  3. Виберіть у Emacs <menu-bar> -> Rope. Наприклад, для методу вилучення виберіть <menu-bar> -> Rope -> Refactorings -> Extract Method. Він також покаже вам пов’язані клавіатури (наприклад C-c r m)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.