[python] ropemacs 사용법 튜토리얼

로프 맥 설치 에 대한 지침이있는 사이트가 많이 있지만 지금까지 이미 설치 한 후에 는 사용 방법에 대한 지침을 찾을 수 없었 습니다. 나는 그것을 설치했거나 적어도 그렇게 보인다. Emacs는 그것의 상단 메뉴 바에 “로프”메뉴를 가지고있다. 이제 뭐? 지금까지는 “문서 표시”(기본적으로 참조) 만 사용할 수있었습니다. 코드 지원 (자동 완성)을 사용하려는 시도는 Emacs가 미니 버퍼에서 “로프 프로젝트 루트 폴더”(무엇입니까?)에 대해 묻고 아무것도 표시하지 않게합니다.

그렇다면 로프 맥이 설치되면 간단한 파이썬 스크립트에서 작동하는 것을 확인하는 단계는 무엇입니까? 당신이 당신의 이맥스에서이 스크립트를 가지고 광장 깜박 넣을 경우 “와 같은 뭔가 여기 를 눌러 , 그것은 않습니다 즉, “대답 할 것이다.

(다른 사람이 같은 문제를 겪지 않는 것 같기 때문에 한동안이 질문을해야할지 말지 고민해 왔습니다)



답변

먼저 프로젝트 루트 폴더를 선택해야합니다. 간단히 말해서, 이것은 프로젝트의 최상위 수준에있는 폴더이거나 단일 파일을 처리하는 경우 현재 폴더입니다. 루트 폴더를 선택하면 코드 지원, 문서 표시, 다른 기호로 이동 등과 같은 다른 옵션이 작동합니다.

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 파일을 수정하여 더 나은 자동 완성을 제공하기 위해 로프 조회 경로에 더 많은 디렉토리를 추가 할 수 있습니다.

편집 : 나에게 가장 중요한 두 가지 기능은 문서를 찾고 함수 정의로 직접 점프하는 것입니다. 이는 위에서 언급 한대로 프로젝트에 대한 로프 조회 경로를 올바르게 설정하는 데 달려 있습니다.

문서 : 기호 (함수 이름, 클래스 이름 등) 위에 커서를 놓고 다음을 수행합니다.

C-c d

그러면 해당 기호에 대한 독 스트링이 표시됩니다.

정의로 이동 : 기호 (함수 이름, 클래스 이름 등) 위에 커서를 놓고 다음을 수행합니다.

C-c g

그러면 기호가있는 파일이 즉시 열리고 정의 시작 부분으로 이동합니다. 문서가 부족하고 실제 코드를보고 싶을 때 유용합니다. 또한 자신의 코드 내부를 탐색 할 때 정말 좋습니다.

발생 찾기 :

C-c f

전체 프로젝트에서 커서에있는 기호를 스마트 검색합니다.

코드 지원 :

M-/

함수, 클래스 등의 첫 번째 문자를 입력하면 가능한 완성 목록이 표시됩니다. 파이썬의 특성상 항상 완전한 목록은 아닙니다.

리팩토링 : Rope-> Refactor 아래에 꽤 많은 옵션이 있습니다. 이것은 코드를 더 잘 구성하기위한 것입니다. 사용 방법은 대부분 자명해야합니다. 일반적으로 리팩토링 할 코드 영역을 선택한 다음 명령을 선택합니다.

편집 : 아래 주석에 대한 응답으로 Python 경로에 다른 경로를 추가하는 방법은 자동 완성이 해당 기호도 찾도록하는 방법입니다.

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

이것은 들어간다 .ropeproject/config.py


답변

내가 찾은 최고의 사용 정보는 ropemacs 소스의 readme입니다.

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


답변

로 루트 폴더를 설정할 수 있습니다 rope-open-project. 루트 프로젝트를 설정하면 .ropeproject디렉토리가 생성됩니다.

그 안에 config.py 파일에는 프로젝트가 설정되면 (python) 코드를 실행할 수있는 후크가 있습니다. 이 project_opened(project):함수는 코드를 실행하기에 좋은 곳입니다. 나는 일반적으로 가상 환경을 활성화하여 가상 환경의 imp.load_source('/path-to-env/activate_this.py')다른 라이브러리에 대한 소스 적용 범위를 얻을 수 있습니다.


답변

ropemacs가 의존하는 로프 라이브러리의 일반적인 사용법은 다음을 확인하십시오.

로프 개요

추출 방법 과 같은 각 리팩토링이 수행하는 작업을 자세히 설명합니다. 합니다. 저자에 따르면이 문서는 약간 구식입니다. 그러나 시작하려면 로프의 기능에 대한 충분한 소개를 제공해야합니다.

Emacs에서 ropemacs 명령을 실행하려면 다음 중 하나 이상을 시도 할 수 있습니다.

  1. freyley의 답변 에서
    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)


답변