En mis emacs, digamos, uso un "elisp"
yasnippet para extender un bloque lisp en modo org. Pero antes de extenderlo, la compañía se activa primero, lo que me da un menú como "1. elisp1, 2. elisp2"
sin opción "elisp"
. Ahora, si uso tab
para extender yasnippet, siempre es molesto que "elisp1"
siempre aparezca primero en la pantalla. Por lo tanto "1"
, primero debo eliminar y hacer la extensión del fragmento de yasnippet.
Entonces, como solución, siempre uso la tecla de flecha izquierda para desactivar primero el menú de finalización de la empresa, pero el cursor ahora irá a "elis|p"
, así que nuevamente uso la tecla de flecha derecha para mover el cursor al final "elisp|"
y extender el fragmento.
Aquí viene mi pregunta: ¿cómo puedo vincular la tab
clave en primer lugar yasnippet pero no la compañía para salvarme la vida?
fuente
tab
paracompany
yC-o
parayasnippet
. Puedo describir más si estás interesado.tab
. Por lo tanto, no me gustaría cambiar el enlace.C-o
hablar sobre cómo podría ampliar abreviaturas y fragmentos y líneas abiertas, etc., si no está interesado.Respuestas:
Esto es lo que creé para mí, enfrentando el mismo problema. Es de la página Wiki de Emacs del modo empresa , pero muy extendida:
Básicamente, esto hace <tab>hacer lo correcto la mayor parte del tiempo. Al presionar la pestaña
Tenga en cuenta que si existe la oportunidad de autocompletar y está editando actualmente en un marcador de posición de fragmento, la situación es ambigua. Como compromiso, estoy obligado C-<tab>a saltar directamente al siguiente marcador de posición.
El hecho de que el nombre del fragmento no aparezca en el menú de la empresa y la existencia de un fragmento que modifique en silencio el comportamiento de la tecla de tabulación no es particularmente agradable, desafortunadamente ... Aunque al menos es posible escribir en su <return>lugar para completarlo. del fragmento.
fuente
Buffer is read-only: #<buffer *magit: ~/.emacs.d/*>
. ¿Alguna idea de cómo puedo arreglar eso?magit-section-toggle
, está en conflicto con la línea(global-set-key [tab] 'tab-indent-or-complete)
anterior. Una solución rápida y sucia sería agregar una marca al comienzo de la funcióntab-indent-or-complete
anterior para ver si estamos en modo magit, por ejemplo, para una variable global que se activamagit-mode-hook
.when
es prácticamente unif
+progn
tab-indent-or-complete
condición `((deriva-mode-p 'magit-mode) (magit-section-toggle (magit-current-section)))`Aquí está el código que estoy usando:
aya-open-line
from auto-yasnippet hace más que un simpleopen-line
:open-line
si todo lo demás fallafuente
C-o
, solo cierra el menú de la compañía, por lo que necesito presionar dos veces para extender yasnippet.C-o
con el menú de la empresa activo cerrará el menú y expandirá el fragmento.