Al hacer un M-x describir-modo en un archivo .el, me di cuenta de que el modo Emacs-Lisp realmente completa el código. Sin embargo, lisp-complete-symbol
está vinculado a M-TAB. En Windows, este enlace de clave lo toma Windows para cambiar la ventana activa. La mayoría de los IDE usan C-SPC, pero eso también se toma en Emacs. ¿Qué es un enlace de clave bueno y bastante común para completar el código?Codifique los enlaces de finalización de claves en Emacs
Respuesta
Si te gusta la finalización de todo tipo, recomiendo M-/ y vinculante que a hippie-expand.
(global-set-key (kbd "M-/") 'hippie-expand)
lo hace una variedad de terminaciones, que son controlados por la variable hippie-expand-try-functions-list
. En los archivos .el, puede configurarlo para hacer el 'try-complete-lisp-symbol
primero para obtener el comportamiento que está pidiendo arriba, junto con todas las otras expansiones que proporciona hippie-expand.
Esto hará por usted:
(add-hook 'emacs-lisp-mode-hook 'move-lisp-completion-to-front)
(defun move-lisp-completion-to-front()
"Adjust hippie-expand-try-functions-list to have lisp completion at the front."
(make-local-variable 'hippie-expand-try-functions-list)
(setq hippie-expand-try-functions-list
(cons 'try-complete-lisp-symbol
(delq 'try-complete-lisp-symbol hippie-expand-try-functions-list)))
(setq hippie-expand-try-functions-list
(cons 'try-complete-lisp-symbol-partially
(delq 'try-complete-lisp-symbol-partially hippie-expand-try-functions-list))))
Hippie-expand suena interesante. ¿Por qué eligió M-/en lugar de M-SPC (como se muestra en la página de EmacsWiki)? Además, ¿cómo se hace esa caja genial alrededor de la M- /? – User1
@ Usuario1 'M- /' es el enlace predeterminado para 'dabbrev' (para el cual hippe-expand es un reemplazo). Además 'M-SPC' está por defecto obligado a' 'just-one-space' que yo uso todo el tiempo. Y, por último, la caja fría se hace usando la etiqueta CLAVE –
+1 Eso tiene mucho sentido para mí. ¡Eres un genio de Emacs! – User1
que utilizo:
(define-key function-key-map [(control tab)] [?\M-\t])
utilizo M-.
y M-/
para los modos de terminación 2 - hippie-expanda y las emacs estándar uno.
C-M-i; no se requiere personalización
Como se mencionó Trey Jackson, hippie-expand
es el camino a seguir, pero junto con la unión a M-/, también me gusta tener la tecla TAB todos mis trabajos de acabado para mí. Así que tengo esto desde el Emacs-Wiki en mis .emacs presentar:
;;function to implement a smarter TAB (EmacsWiki)
(defun smart-tab()
"This smart tab is minibuffer compliant: it acts as usual in
the minibuffer. Else, if mark is active, indents region. Else if
point is at the end of a symbol, expands it. Else indents the
current line."
(interactive)
(if (minibufferp)
(unless (minibuffer-complete)
(hippie-expand nil))
(if mark-active
(indent-region (region-beginning)
(region-end))
(if (looking-at "\\_>")
(hippie-expand nil)
(indent-for-tab-command)))))
(global-set-key (kbd "TAB") 'smart-tab)
usted podría tener hippie ampliar la configuración de la siguiente manera:
;;settings for hippie-expand
(setq hippie-expand-try-functions-list
'(try-complete-lisp-symbol
try-complete-lisp-symbol-partially
try-expand-dabbrev
try-expand-dabbrev-from-kill
try-expand-dabbrev-all-buffers
try-expand-line
try-complete-file-name-partially
try-complete-file-name))
poner esto en su .emacs
para hacer que Windows Emacs dar el uso de M-TAB
:
(when (fboundp 'w32-register-hot-key) (w32-register-hot-key [M-tab]))
- 1. Emacs minibúfer finalización
- 2. usando emacs Finalización de CEDET para python
- 3. Finalización de Emacs: autocompletar o empresa?
- 4. ayuda de finalización de atajo de teclado en emacs?
- 5. Finalización del código Emacs/TextMate para Erlang?
- 6. bash, prefijo numérico para enlaces de emacs?
- 7. ¿Hay una forma rápida de desvincular claves en Emacs?
- 8. Entender las opciones del modo de finalización de Emacs
- 9. ¿Emacs tiene finalización de palabras y líneas (como la finalización del modo de inserción de Vim)?
- 10. Cómo reasignar claves cuando está en Emacs?
- 11. Emacs: finalización de tabulación de las variables locales de Python
- 12. Emacs/CEDET. Múltiples proyectos y finalización de código
- 13. Finalización de tabulación en las sesiones SSH en modo shell de Emacs
- 14. Siga los enlaces de redirección en scrapy
- 15. En Emacs, Cómo exportar enlaces a un enlace cliqueable, cuando htmlize emacs buffer?
- 16. Hippie finalización de código en IntelliJ IDEA?
- 17. Emacs: deshabilitar la finalización de Ido en el modo de Vagabundo
- 18. Finalización de tabulación en los comandos de Vim
- 19. En Emacs, ¿cómo cambio la ventana de lista de finalización del minibúfer?
- 20. ¿Cómo evito que DOMDocument de Php codifique entidades html?
- 21. Uso de cadenas de traducción en los enlaces de componentes
- 22. Codifique la primera migración con cadenas de conexión
- 23. ¿Cómo dominar los enlaces/dependencias de C++?
- 24. Enlaces entre los portátiles de IPython
- 25. Limpiando los enlaces simbólicos de Magento Modman
- 26. Eliminar todo target = "_ blank" de los enlaces
- 27. Buscar modos de archivo en la consola (finalización difusa)
- 28. ¿Hay alguna forma de cerrar automáticamente los buffers de compleción de nombre de archivo en Emacs?
- 29. ¿Cómo puedo obtener enlaces de teclas de estilo Emacs en Visual Studio?
- 30. Obtener todos los enlaces href en DOM
Por supuesto, usted puede escribir 'ESC TAB'. –
+1 Tienes razón. ¿Por qué funciona eso? ESC = Meta? – User1
Sí, es por eso. – jrockway