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)
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
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:
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.
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ź:
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": {]}
- użyj sekcji 'Keybinding' w README Docs link z odpowiedź freyleya jako przewodnik do nauki mapowania.
- 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łabyM-x rope-extract-method
. - 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
)
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