Tutorial de USO de ropemacs

78

Hay muchos sitios con instrucciones sobre cómo instalar ropemacs, pero hasta ahora no pude encontrar ninguno con instrucciones sobre cómo usarlo después de que ya está instalado. Lo tengo instalado, o al menos eso parece, Emacs tiene el menú "Cuerda" en su barra de menú superior. ¿Ahora que? Hasta ahora solo podía usar "Mostrar documentación" (Cc d por defecto). Un intento de usar la asistencia de código (que es autocompletado, ¿supongo?) Solo hace que Emacs pregunte sobre la "carpeta raíz del proyecto Rope" (¿qué es eso?) En el minibúfer y luego no muestre nada.

Entonces, una vez que se instala ropemacs, ¿cuáles son los pasos para verlo en acción en algunos scripts simples de Python? Algo como "si tiene este script en su emacs y coloca el cuadrado parpadeante aquí y presiona esto , hace aquello " sería una respuesta.

(Llevo un tiempo pensando si debería preguntar esto o no, porque nadie más parece tener el mismo problema)

Headcrab
fuente

Respuestas:

63

Bueno, primero debes seleccionar la carpeta raíz de tu proyecto. En pocas palabras, esta es la carpeta en el nivel superior de su proyecto, o la carpeta actual si está tratando con un solo archivo. Una vez que haya seleccionado la carpeta raíz, otras opciones funcionarán, como asistencia de código, mostrar documentación, saltar a otros símbolos, etc.

Para obtener el máximo beneficio de ropemacs, sugiero obtener autocomplete.el , ponerlo en ~ / .emacs.d, y luego agregarlo a su .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)

Esto supone que instala autocompletar en ~ / .emacs.d / auto-complete-1.2. Después de hacer esto, se completará automáticamente después de escribir algunos caracteres de una palabra o símbolo.

Puede modificar su archivo ROOT / .ropeproject / config.py para agregar más directorios a la ruta de búsqueda de cuerdas, con el fin de proporcionar un mejor autocompletado.

EDITAR: Dos de las funciones más importantes para mí son buscar documentación y saltar directamente a una definición de función. Esto depende de la configuración correcta de la ruta de búsqueda de la cuerda para su proyecto, como se mencionó anteriormente.

Documentación : coloque el cursor sobre un símbolo (nombre de función, nombre de clase, etc.) y haga:

C-c d

Esto le mostrará la cadena de documentación del símbolo en cuestión.

Saltar a la definición : coloque el cursor sobre un símbolo (nombre de función, nombre de clase, etc.) y haga:

C-c g

Esto abrirá inmediatamente el archivo donde reside el símbolo y saltará al principio de la definición. Esto es ideal para momentos en los que la documentación es escasa y desea ver el código real. Además, es muy bueno para navegar dentro de su propio código.

Encuentra ocurrencias :

C-c f

Búsqueda inteligente en todo su proyecto del símbolo en el cursor.

Asistencia de código :

M-/

Simplemente escriba los primeros caracteres de una función, clase, etc., y esto mostrará una lista de posibles finalizaciones. Tenga en cuenta que debido a la naturaleza de Python, no siempre será una lista completa.

Refactorizaciones : hay bastantes opciones en Cuerda-> Refactorizar. Estos son para organizar mejor su código. La forma de usarlos debe ser en su mayoría autoexplicativa; en general, seleccione la región de código que desea refactorizar y luego elija el comando.

Editar : En respuesta a un comentario a continuación, aquí se explica exactamente cómo agregar otras rutas a su ruta de Python para que el autocompletado también busque esos símbolos.

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

Esto entra .ropeproject/config.py

Matthew Talbert
fuente
6
Esto no ayuda en absoluto a responder la pregunta. Repita, ¿cómo se utiliza ropemacs. Ni siquiera ha dicho cómo se selecciona la carpeta raíz.
blokeley
5
En bloque, ya sabe cómo seleccionar la carpeta raíz del proyecto. Emacs ya te lo estaba pidiendo ...
Matthew Talbert
2
Además, te he dado los mejores consejos sobre "cómo usar" ropemacs. En mi opinión, la mejor forma de utilizarlo es utilizarlo junto con autocompletar. Cuando haces eso, ni siquiera tienes que saber mucho al respecto, solo está ahí en el fondo, terminando la fundación para ti.
Matthew Talbert
2
Allí, agregué varios comandos básicos. Realmente, esto es mucho, mucho mejor que cualquier consejo que encontré sobre cómo usarlo, así que espero que ayude.
Matthew Talbert
1
Oh lo tengo. Solo necesito presionar TAB en el mini-búfer después de presionar M- /, o escribir una parte del símbolo que estoy buscando y luego presionar TAB. Antes intentaba usar M- / justo después de escribir, por ejemplo, "Imagen.", Luego mostraba "Finalización para imagen .:" y nada más, lo que, pensé, significaba que no podía encontrar ninguna terminación.
Headcrab
10

Puede configurar la carpeta raíz con rope-open-project. Una vez que haya configurado el proyecto raíz .ropeproject, se creará un directorio.

Dentro de él, un archivo config.py tiene ganchos donde puede ejecutar código (python) una vez que se establece el proyecto. La project_opened(project):función es un buen lugar para ejecutar código. Por lo general, activo el entorno virtual imp.load_source('/path-to-env/activate_this.py'), de modo que puedo obtener cobertura de origen para otras bibliotecas en el entorno virtual.

Arthur Debert
fuente
más información sobre cómo configurar virutalenvs.
scytale
3

Para el uso general de la biblioteca de cuerdas de la que depende ropemacs, consulte:

Descripción general de la cuerda

Describe con cierto detalle lo que hace cada una de las refactorizaciones, como el método de extracción . Tenga en cuenta que, según el autor, este documento está un poco desactualizado. Sin embargo, debería proporcionar una introducción suficiente a las características de las cuerdas para comenzar.

Para ejecutar los comandos de ropemacs en Emacs, puede probar uno o más de los siguientes:

  1. Use la sección 'Vinculación de teclas' en el enlace de documentos README de la respuesta de freyley como guía para aprender las asignaciones.
  2. Si no recuerda las combinaciones de teclas, ejecute M-x rope-<specific command name>y complete el nombre de refactorización relacionado. Por ejemplo, el método de extracción sería M-x rope-extract-method .
  3. Seleccione en Emacs <menu-bar> -> Rope. Por ejemplo, para el método de extracción, seleccione <menu-bar> -> Rope -> Refactorings -> Extract Method. También le mostrará las combinaciones de teclas asociadas (p C-c r m. Ej. )
Rayo
fuente