Vim completa palabras y líneas con CTRL-X P
y CTRL-L.
Hay un complemento de Emacs llamado modo Company pero este complemento interfiere y causa conflictos con muchas cosas dentro de Emacs (con linum y yasnippets globales). Sé que puedo completar palabras con CTRL-/en Emacs. ¿Pero es posible tomar líneas previamente escritas para completar el código?¿Emacs tiene finalización de palabras y líneas (como la finalización del modo de inserción de Vim)?
¿Emacs tiene finalización de palabras y líneas (como la finalización del modo de inserción de Vim)?
Respuesta
Quizás esté buscando hippie-expand? A partir de esa página web (a partir de este escrito, de todos modos):
HippieExpand mira a la palabra antes de punto y trata de expandirlo en diversas maneras incluyendo la expansión de una lista fija (como
expand-abbrev
), la expansión del texto coincidente encontrado en un búfer (comodabbrev-expand
) o expandiéndose de formas definidas por sus propias funciones . Cuál de estos intenta y en qué orden está controlado por una lista de funciones configurable .
Para obtener una lista completa de todas las opciones de configuración, visite el emacs wiki page on completion.
Para obtener el comportamiento similar a 'Ctrl-X Ctrl-L' de vim, debe agregar 'try-expand-line-all-buffers' a' hippie-expand-try-functions-list'. Esto se ampliará por líneas desde todos los búferes en lugar de solo el búfer actual. – ymln
Hay un montón de maneras de completar en Emacs. Algunos son específicos del modo, algunos en línea, algunos configurables y otros. Here es una lista de modos que pueden ayudarte.
También vale la pena señalar: si su administrador de ventanas no roba Alt-tab, emacs se auto-completará con Alt-tab (configuré mi administrador de ventanas para usar la "clave de Windows" en lugar de alt por este mismo motivo) .
Utilice el argumento numérico para completar por línea, digamos M-5 M-/
completará por línea, mientras que M-/
solo completará la forma normal.
hippe-expend
función tiene una característica muy útil que es:
With a positive numeric argument, jumps directly to the ARG next function in this list. With a negative argument or just C-u, undoes the expansion.
personalizar las funciones de expansión en hippie-expand-try-functions-list
y poner la función try-expand-line
como quinto elemento de la lista, entonces se podría usar M-5 M-/a completa por linea
Este consejo es muy práctico y útil, y lo recomiendo encarecidamente.
FYI 'try-expand-line' es el 5º elemento predeterminado de' hippie-expand-try-functions-list'. – ocodo
Si está utilizando evil
, esta es la solución vim-como la mayoría utilizo:
(defun my-expand-lines()
(interactive)
(let ((hippie-expand-try-functions-list
'(try-expand-line-all-buffers)))
(call-interactively 'hippie-expand)))
(define-key evil-insert-state-map (kbd "C-x C-l") 'my-expand-lines)
De esta manera puede utilizar nuestro viejo amigo C-x C-l
en modo de inserción para toda la línea Todos los tampones finalización.
Gracias @ymln por la sugerencia de usar try-expand-line-all-buffers
.
- 1. Finalización del código Vim
- 2. Finalización del directorio de Vim
- 3. Entender las opciones del modo de finalización de Emacs
- 4. finalización interna de código en vim
- 5. Finalización del código Vim Java?
- 6. Emacs minibúfer finalización
- 7. Vim palabra clave Finalización
- 8. Finalización del código Emacs/TextMate para Erlang?
- 9. Finalización del código automático en VIM?
- 10. Finalización de Emacs: autocompletar o empresa?
- 11. ¿Puedo obtener la finalización del modo ido-modo para buscar etiquetas en Emacs?
- 12. Palabra/Código de finalización en VIM
- 13. cómo puedo obtener emacs reconocer comillas simples como no siendo la cadena comience/fichas de finalización del modo
- 14. usando emacs Finalización de CEDET para python
- 15. Emacs: deshabilitar la finalización de Ido en el modo de Vagabundo
- 16. Emacs/CEDET. Múltiples proyectos y finalización de código
- 17. Emacs: finalización de tabulación de las variables locales de Python
- 18. Codifique los enlaces de finalización de claves en Emacs
- 19. ¿Predicción/finalización de la barra de estado de Vim?
- 20. Finalización de la tarea del iPhone
- 21. Vim: el complemento snipMate no desencadena la finalización del fragmento
- 22. Personalización de la finalización del nombre de archivo en modo Ex
- 23. Finalización de tabulación en las sesiones SSH en modo shell de Emacs
- 24. rendimiento de finalización del código Delphi
- 25. finalización dismissviewcontrolleranimated no llamar a la finalización de UIImagePickerController
- 26. ¿Cómo puedo hacer que la finalización de la pestaña bash se comporte como la finalización de la pestaña vim y recorrer las coincidencias coincidentes?
- 27. Finalización de tabulación en los comandos de Vim
- 28. ayuda de finalización de atajo de teclado en emacs?
- 29. Detectar la finalización de Animación
- 30. Vim: Supr en Modo de inserción
Creo que es más cuestión de superusuario – notnoop
@notnoop <- ¿Esto es un bot? porque creo que mi pregunta es acerca de la programación – alexchenco
, la pregunta es acerca de los atajos para el editor de propósito general de emacs. Esa es una pregunta de superusuario. Sin embargo, entiendo que, por lo general, desee dicha funcionalidad mientras codifica. Si la pregunta es sobre la escritura de una extensión de emacs, o cómo manejar la finalización del código (con yasnippets), entonces creo que está relacionada con la programación. – notnoop