Qt admite combinaciones de teclas de estilo Emacs , sin embargo, solo para hasta cuatro teclas. Para aclarar por qué debería aumentarse este límite, sería útil mostrar ejemplos de combinaciones de teclas de estilo Emacs con incluso más teclas que eso. ¿Hay ejemplos conocidos de esto o tal vez incluso una forma de encontrar mediante programación secuencias de teclas largas definidas en mapas de teclas de Emacs?
Edit: Me pareció que era de conocimiento común, pero una secuencia de teclas es un juego de llaves leer en por read-key-sequence
. Intente F1 k
con su candidato y vea si describe su comando o uno no relacionado que lo precede.
key-bindings
keymap
wasamasa
fuente
fuente
C-u 1 0 0 0 C-n
cuál es seis teclas.F1 k C-u 1 0 0 0 C-n
y vea queC-u
es una secuencia de teclas por sí sola.Respuestas:
Probé con el siguiente script,
Y lo que más tiempo obtengo con mi
.emacs.d
esC-x c C-x r i
cuál es algún comando de timón, y con loemacs -q
que obtengoC-x a i l
que ejecuta el comandoinverse-add-mode-abbrev
.fuente
C-x M-c M-b u t t e r f l y
:) Me había olvidado de que había hecho eso ...where-is-internal
aquí domina el tiempo de la CPU, pero aún puede reducir fácilmente algunos ciclos al anteponer destructivamente la lista más corta a la vía más larga(setq keyseqs (nconc (where-is-internal sym nil nil t) keyseqs))
.M-x butterfly
? Simplemente lo vinculé a ese comando para aumentar la autenticidad :)No puedo responder sobre cuál podría ser el más largo en algún lugar, pero aquí hay un poco de información que podría ayudar.
Tengo algunas bibliotecas que proporcionan un conjunto de comandos relacionados vinculados a teclas en un mapa de teclas que enlazo a una tecla de prefijo.
Debido a que no quiero cooptar las teclas de usuario, etc., normalmente asocio dicha clave de prefijo debajo de, digamos
C-x
o, paraother-window
comandos, debajo deC-x 4
(mapa de teclasctl-x-4-map
).Las mismas consideraciones se aplican a grupos de comandos en dicho mapa de teclas: a veces obtienen su propio mapa de teclas. Y así sucesivamente, recursivamente.
Espero que al menos algunos usuarios quieran volver a vincular dichos mapas de teclas (en cualquier nivel) a sus propias teclas de prefijo, más cortas, o que quieran vincular comandos específicos a secuencias de teclas más cortas. Pero no quiero hacer eso en la biblioteca en sí, obviamente.
Aquí hay un ejemplo de una de estas teclas bastante largas:
C-x 4 j t . % *
(siete pulsaciones de teclas), que está obligado a ordenaricicle-bookmark-file-this-dir-all-tags-regexp-other-window
en Bookmark + .Anatomía:
En la
C-x 4
tecla de prefijo (ctl-x-4-map
).En la
j
tecla de prefijo, que es para todos los comandos para saltar a un marcador .En la
t
tecla de prefijo, que es para todos los comandos para saltar a marcadores que están etiquetados de alguna manera.En la
.
tecla de prefijo, que es para todos los comandos para saltar a marcadores que son para archivos en el directorio actual que están etiquetados de alguna manera.En la
%
tecla de prefijo, que es para todos los comandos para saltar a marcadores que son para cosas en el directorio actual que tienen etiquetas que coinciden con una expresión regular que se le solicita.En la
*
tecla, que es para todos los comandos para saltar a marcadores que son para cosas en el directorio actual que tienen etiquetas , TODOS los cuales coinciden con una expresión regular que se le solicita. (Por el contrario,C-x 4 j t . % +
es para marcadores ALGUNAS de cuyas etiquetas coinciden con la expresión regular).Todo eso es convencional en Bookmark + (y parte corresponde a convenciones de Dired, por cierto):
j
es para comandos de salto ,t
es para etiquetado ,.
es para directorio actual ,%
es para regexp y*
es para todos (+
es para algunos ).(Ah, y usando el sexp de @ mkcms, obtengo
C-x 4 j t f % *
, que es igualmente largo.f
Significa archivo . Es comoC-x 4 j t . % *
, pero los marcadores candidatos para completar son todos marcadores de archivo, no solo aquellos para archivos en el directorio actual (.
).)fuente
Magit
agrega secuencias largas ya que permite alternar las opciones. Por ejemplo, cuando solicita el registro, puede seleccionar opciones cortas o largas, si desea ramas remotas o no, si desea la visualización gráfica de ramas, etc. La solicitud básica de un registro es solo un par de pulsaciones delmagit-status
búfer, pero puede agregar muchas más.Lo mismo se aplica a la confirmación, dos pulsaciones de teclas para una confirmación básica, pero muchas adiciones opcionales.
Entonces la pregunta está debajo de lo especificado, ¿solo está considerando un
stock
(lo que sea que eso signifique) emacs?fuente
F1 k
y vea cuántas teclas puede escribir hasta que describa el comando.