ropemacs USAGE tutorial

Jest wiele stron z instrukcjami na temat instalacji ropemacs, ale jak dotąd nie mogłem znaleźć żadnych z instrukcjami jak używać po tym, jak jest już zainstalowany. Mam go zainstalowany, a przynajmniej tak się wydaje, Emacs ma Menu "liny" w górnym pasku menu. Co teraz? Do tej pory mogłem użyć tylko "Pokaż dokumentację" (domyślnie C-C d). Próba użycia asystenta kodu (który jest autouzupełniony, jak przypuszczam?) powoduje tylko, że Emacs pyta o " root folder projektu linowego "(co to jest?) w minibuffer, a potem nic nie pokazując.

Więc, po zainstalowaniu ropemacs, jakie są kroki, aby zobaczyć go w akcji na niektórych prostych skryptach Pythona? Coś w stylu "jeśli masz ten skrypt w Emacsie i umieść migający kwadrat tutaj i naciśnij this , to robi that", byłoby odpowiedzią.

(zastanawiałam się, czy powinnam o to zapytać, czy nie, ponieważ nikt inny nie ma tego samego problemu)

Author: David Nehme, 2010-05-18

4 answers

Cóż, najpierw musisz wybrać główny folder projektu. Po prostu jest to folder na najwyższym poziomie projektu lub bieżący folder, jeśli masz do czynienia z pojedynczym plikiem. Po wybraniu folderu głównego będą działać inne opcje, takie jak pomoc w kodowaniu, wyświetlanie dokumentacji, przechodzenie do innych symboli itp.

Aby w pełni korzystać z ropemacs, proponuję autouzupełnianie.el , umieszczając go w~/.emacs.d, a następnie dodanie tego do twojego .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)

Zakłada się, że instalujesz autouzupełnianie w~/.emacs.d / auto-complete-1.2. Gdy to zrobisz, otrzymasz autouzupełnianie automatycznie po wpisaniu kilku znaków słowa lub symbolu.

Możesz modyfikować swoje ROOT/.ropeproject/config.py plik, aby dodać więcej katalogów do ścieżki wyszukiwania Lin, aby zapewnić lepsze autouzupełnianie.

EDIT: dwie najważniejsze dla mnie funkcje to przeglądanie dokumentacji i przeskakiwanie bezpośrednio do definicji funkcji. Jest to zależne od prawidłowego ustawienia ścieżki wyszukiwania lin dla Twojego projektu, jak wspomniano powyżej.

Dokumentacja : Umieść kursor nad symbolem (nazwa funkcji, nazwa klasy itp.) i wykonaj:

C-c d

To pokaże Ci docstring dla danego symbolu.

Przeskakiwanie do definicji : Umieść kursor nad symbolem (nazwa funkcji, nazwa klasy itp.) i wykonaj:

C-c g

Spowoduje to natychmiastowe otwarcie pliku, w którym znajduje się symbol i przejście do początek definicji. Jest to świetne rozwiązanie w czasach, gdy dokumentacja jest uboga i chcesz zobaczyć rzeczywisty kod. Ponadto, jest to naprawdę miłe do poruszania się wewnątrz własnego kodu.

Znajdź zdarzenia :

C-c f

Inteligentne wyszukiwanie w całym projekcie symbolu przy kursorze.

Code assist :

M-/

Wystarczy wpisać pierwsze znaki funkcji, klasy itp., a wyświetli się lista możliwych zakończeń. Należy pamiętać, że ze względu na natury Pythona, nie zawsze będzie to pełna lista.

Refaktoryzacje : Jest sporo opcji pod liną- > Refactor. Mają one na celu lepsze zorganizowanie kodu. Sposób ich użycia powinien być w większości oczywisty; ogólnie rzecz biorąc, wybierz region kodu, który chcesz refaktorować, a następnie wybierz polecenie.

Edit : W odpowiedzi na poniższy komentarz, oto dokładnie jak dodać inne ścieżki do ścieżki Pythona, aby autouzupełnianie szukało tych symboli jako cóż.

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

To wchodzi .ropeproject/config.py

 63
Author: Matthew Talbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-22 00:04:09

Najlepszą informacją o użytkowaniu, jaką znalazłem, jest readme w źródle ropemacs, tutaj:

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

 13
Author: freyley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 19:24:33

Możesz ustawić folder główny za pomocą rope-open-project. Po ustawieniu głównego projektu zostanie utworzony katalog .ropeproject.

Wewnątrz niej, a config.py plik posiada Hooki, w których można uruchomić (python) kod Po ustawieniu projektu. Funkcja project_opened(project): jest dobrym miejscem do uruchamiania kodu. Zazwyczaj aktywuję środowisko wirtualne imp.load_source('/path-to-env/activate_this.py'), aby uzyskać pokrycie źródłowe dla innych bibliotek w wirtualnym env.

 10
Author: Arthur Debert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-18 14:27:12

Do ogólnego użycia biblioteki linowej, od której zależy ropemacs, sprawdź:

Przegląd Lin

Opisuje szczegółowo, co robi każda z refaktoringów, np. metoda ekstrakcji . Zauważ, że według autora ten dokument jest nieco Nieaktualny. Powinno to jednak zapewnić wystarczająco dużo wstępu do funkcji Lin, aby zacząć.

Aby wykonać polecenia ropemacs w Emacsie, możesz spróbować jednego lub więcej z "po": {]}

  1. użyj sekcji 'Keybinding' w README Docs link z odpowiedź freyleya jako przewodnik do nauki mapowania.
  2. jeśli nie pamiętasz skrótów klawiszowych, wykonaj M-x rope-<specific command name> i wypełnij powiązana nazwa refaktoryzacji. Na przykład, metoda ekstrakcji byłaby M-x rope-extract-method.
  3. wybierz w Emacsie <menu-bar> -> Rope. Na przykład dla metody extract wybierz <menu-bar> -> Rope -> Refactorings -> Extract Method. Wyświetli również powiązane skróty klawiszy (np. C-c r m)
 3
Author: Ray Vega,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:15:51