En Vim, la tecla * en modo normal busca la palabra debajo del cursor. En GNU Emacs el equivalente nativo más cercano sería:¿Cómo puedo emular la búsqueda de Vim * en GNU Emacs?
C-s C-w
Pero eso no es exactamente lo mismo. Abre el mini búfer de búsqueda incremental y copia desde el cursor en el búfer actual hasta el final de la palabra. En Vim buscarías la palabra completa, incluso si estás en medio de la palabra cuando presionas *.
he cocinado un poco de elisp hacer algo similar:
(defun find-word-under-cursor (arg)
(interactive "p")
(if (looking-at "\\<")() (re-search-backward "\\<" (point-min)))
(isearch-forward))
que trota hacia atrás para el comienzo de la palabra antes de disparar hasta isearch. Lo he vinculado a C- +, que es fácil de escribir en mi teclado y similar a *, así que cuando escribo C-+ C-w
, copia desde el comienzo de la palabra al miniintervalo de búsqueda.
Sin embargo, esto todavía no es perfecto. Lo ideal sería regexp buscar "\<" word "\>"
para no mostrar coincidencias parciales (la búsqueda de la palabra "barra" no debería coincidir con "foobar", solo "barra" en sí misma). Intenté usar search-forward-regexp y concat'ing \ <> pero esto no se ajusta al archivo, no resalta las coincidencias y generalmente es bastante cojo. Una función isearch- * parece ser la mejor opción, pero no se comportan bien cuando se escriben.
¿Alguna idea? ¿Alguien puede ofrecer alguna mejora en el bit de elisp? ¿O hay alguna otra forma que he pasado por alto?
Sí, Emacs le permite enganchar en isearch para hacer esto, pero el paquete de símbolos de resaltado es incluso mejor. Me parece muy útil mantener los símbolos centrales de mi actual proceso de pensamiento. Además, obtienes una búsqueda de clave y tu punto permanece constante en relación con el comienzo del símbolo. –
http://stackoverflow.com/questions/1775005/super-star-or-find-the-word-under-the-cursor-equivalent-in-emacs – Neil