gtk-key-theme Emacs: ¿qué pulsación de tecla es para select-all?

22

Prefiero las pulsaciones de teclas de emacs, pero select-all no parece ser parte del vocabulario de emacs, o al menos, el tema gtk-key para emacs. Mw no funciona para copiar la región seleccionada.

  1. ¿Cuál es la combinación de teclas para seleccionar todo?
  2. ¿Dónde está un mapa vinculante clave para este tema?

Gracias Steve

Chelmite
fuente

Respuestas:

22

No es una unión de "Seleccionar todo" en GTK simple:C-/

Se define como una señal GtkTextView general y no específicamente parte del tema clave de emacs. Pero funciona bien con eso. Se define como una alternativa a C-a. Mientras que este último es reinterpretado por el tema emacs C-/sigue siendo válido para "Seleccionar todo".

Víctor
fuente
Gran respuesta. ¿Por qué todavía no tenía votos a favor?
Rörd
7

No hay un solo atajo para hacerlo directamente.

Puede ir al final del texto con Ctrl- ey eliminar una línea Ctrl- u. Sin embargo, esto solo funciona con el GtkEntrycampo de entrada de una línea.

Si es necesario seleccionar todo en una GtkTextView, la multilínea redactor como el control, lo que queda es hacer la onerosa Ctrl- Homeseguido de Ctrl+ Shift- End, que, con mi teclado 63-clave es casi imposible.

Si, por la buena razón de la eficiencia de edición o las limitaciones de los teclados de los dispositivos móviles, Homey Endestán fuera de su alcance, entonces tendrá que sobrevivir. Seleccionar "Seleccionar todo" del menú "Editar" es una mala idea, ya que se asigna a Alt- e- aen firefox, Alt- e- ten gedit, Alt- e- sen OpenOffice (incluso con la integración de gnome), en cada software una tecla diferente, y en algunos softwares, no hay "Seleccionar todo" en el menú Editar, como el cromo, y en algunos softwares, ni siquiera hay un menú de edición en sí, ni siquiera uno oculto para llamarlo Alt:ecomo el nautilo Esta inconsistencia supera el propósito de la barra de menú activada por Alt, y ningún sistema operativo, ni siquiera Windows, es tan inconsistente. Incluso el menú del botón derecho no tiene un acceso directo fijo para "Seleccionar todo", por lo general, apero puede ser tde una aplicación a otra. Solicitar la corrección de errores en cada software individual solo se puede hacer con un metaproyecto como GNOME, pero saber que GNOME en sí produjo algunos de estos problemas (la eliminación del menú Editar en 'nautilus' es una decisión de GNOME 3) realmente no se fue tienes mucha esperanza

En una nota al margen, Ctrl- Homees el único atajo para moverse al comienzo de todo el texto, incluso puede interrumpir su trabajo para ingresar dispositivos móviles con teclado pequeño.

La respuesta termina aquí. Para las mentes curiosas tengo información adicional:


Un usuario experimentado de emacs intentaría Ctrl- x- h: emacs auténticos, pero el modo emacs de gtk3 no entiende ninguna secuencia de teclas de control. De hecho, solo se definen unos pocos atajos de emacs: eche un vistazo /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css; hay suficiente espacio en una etiqueta para anotar todos los accesos directos de emacs compatibles.

Para empeorar la situación, es difícil reubicar una tecla de acceso directo para este propósito. Como sabes, Ctrl- aes tomado por emacs. Pero incluso los hispanohablantes, el grupo más grande que no habla inglés (excluido el chino porque usamos ideógrafos), que se utilizan para seleccionar todo con Ctrl- e, también encontrarían ese atajo de teclado tomado por emacs. Excluyendo e, no queda ninguna otra tecla en la mitad izquierda de un teclado QWERTY sin un propósito ya bien aceptado. Google Translate toma la tecla MAYÚS, cuando se presiona solo, como 'seleccionar todo', pero ningún otro software ni otros productos de Google siguen la configuración.

Para vaciar una línea, use Ctrl- u. Esto tiene la ventaja de no sobrescribir X SELECTION (la que tira con el botón central del mouse). Esta es una configuración única solo del modo emacs de gtk3: en emacs reales no hace nada por sí mismo; en readline (bash, MySQL, etc.) que se supone que borrar todo desde el cursor al comienzo de la línea, mientras que su contra-parte Ctrl- kBorra todo desde el cursor hasta el final de la línea.

Algunos pueden sugerir que deje una marca en algún lugar para la selección aleatoria con el teclado. También puede encontrar Ctrl: SPACEestá en modo emacs configurado para establecer un ancla en el texto. A pesar de entrar en conflicto con muchos otros softwares (métodos de entrada de ideogramas en particular, y autocompletado en algún otro software editor), no hay ninguna tecla de acceso directo para usar el ancla que establezca.


Ubuntu no admite oficialmente el modo de edición de emacs, ni ninguna otra configuración de UI que no se pueda hacer con UI. Los informes de errores sobre tales necesidades están marcados con prioridad baja. Por esta razón, creo que es mejor hacer esa pregunta a lugares genéricos de Linux, por ejemplo, superusuario.

Zhang Weiwu
fuente
2

Los enlaces de emacs se especifican en /usr/share/themes/Emacs/gtk-2.0-key/gtkrc También puede agregar enlaces en ~ / .config / gtk-3.0 / gtk.css

Seleccionar todo sería algo como esto:

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

Sin embargo, no he encontrado una manera de vincularlo a Cx h.

emacser
fuente
2

Ver la asociación de teclas existente

Para las aplicaciones GTK3, puede ver los enlaces del tema clave Emacs GTK, ya sea localmente, probablemente en /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css) o en el repositorio git de GTK en GitHub (que no necesariamente es igual a su archivo local, ya que su distribución podría haberlo modificado) .

Mientras lee este archivo, debe tener en cuenta el significado de los widgets

(Mire la imagen en la parte superior de cada sitio vinculado).

Agregar enlace de teclas para seleccionar todo

select-allpara GtkTreeViewyGtkTextView

Para GtkTreeViewy GtkTextViewwidgets, hay una señal llamada select-all. Debe pasarle el argumento 1para que seleccione todo en lugar de anular la selección.

Entonces, edite ~/.config/gtk-3.0/gtk.cssy agregue algo como esto:

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

Porque GtkEntryno hay select-allseñal. En su lugar, puede usar una secuencia de dos move-cursorseñales que marcan el texto.

Nuevamente, edite ~/.config/gtk-3.0/gtk.cssy agregue algo como esto:

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

Firefox

Por cierto, en Firefox Alt: aselecciona todo para mí de forma predeterminada sin configuración (usando el tema clave Emacs GTK).

Mekeor Melire
fuente
1

Si desea seleccionar todo el texto en una región, prefiero definir una macro simple para eso. Presione F3 para comenzar a escribir una macro. Luego escribe

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

Luego use M -w para copiar (que es lo que normalmente hago para copiar desde sistemas Unix remotos a Windows local) y luego presione F4 para terminar de definir la macro.

Ahora que ha terminado de definir la Macro, simplemente presione F4 tantas veces como desee repetir la acción.

Prashanth R
fuente
El tema clave de GTK Emacs no es el mismo que Emacs en sí. Casi ninguna de las combinaciones de teclas en su respuesta funciona allí (y si realmente estuviera en Emacs, podría usar Cx h en lugar de una macro.)
Rörd