¿Hay alguna manera, a través de algún comando que pueda ser invocado por el teclado, de hacer que Emacs piense que hice clic en un punto en particular (para que haga lo que hubiera hecho si hubiera hecho clic allí, por ejemplo, seguir enlace o abrir un menú) )? ¿O que coloqué el mouse en el punto (para que aparezca la información sobre herramientas)?
[Motivación: algunos modos decoran el búfer, convirtiendo parte del texto en enlaces, etc. Puedo saber cómo hacer algo con el mouse (por ejemplo, hacer clic en él), pero no el atajo de teclado / comando equivalente para invocar. Por supuesto, debería leer la documentación para el modo y aprenderla, pero pensé que es una pregunta interesante.]
key-bindings
mouse
ShreevatsaR
fuente
fuente
Respuestas:
A menudo, navegar a una ubicación y presionar alguna tecla tendrá el mismo efecto que hacer clic en esa ubicación. No hay un mecanismo incorporado que garantice esto, es solo que los modos generalmente se escriben de esa manera.
Puede generar eventos del mouse ( clic , doble / triple / ... clic , botón abajo / arriba , arrastrar , movimiento ). Todos los eventos del mouse tienen la forma
(TYPE POSITION . EXTRA-DATA)
en que TYPE es un símbolo que codifica el botón del mouse, la naturaleza de la acción (hacer clic, arrastrar, etc.) y los modificadores. TYPE esmouse-movement
para un evento de movimiento. Llameposn-at-point
para generar la POSICIÓN para la ubicación del punto en el búfer actual.Aquí hay un código de prueba de concepto que simula un clic del mouse en la posición del cursor cuando presiona
f11
seguido de un dígito. Los modificadores se tienen en cuenta.Simular hover parece más difícil.
fuente
C-c C-, RET
, pero yo tuvo que buscar la documentación del modo para eso).f11 1
no lo hace (imprime algo en el minibúfer, pero no es el equivalente a un clic del mouse en el enlace), aunquef11 3
parece ser equivalente a<mouse-3>
y así sucesivamente.down-mouse-1
y nomouse-1
? ¿Cómo puedo saber en qué mapa de teclas está vinculada una tecla? puede ayudar a investigar esto.