gtk-key-theme Emacs: Welcher Tastendruck ist für Auswahl alles?


22

Ich bevorzuge Emacs-Tastenanschläge, aber Select-All scheint nicht Teil des Emacs-Vokabulars zu sein, oder zumindest das GTK-Key-Thema für Emacs. Mw kopiert den ausgewählten Bereich nicht.

  1. Was ist der Tastenanschlag für alle auswählen?
  2. Wo ist eine Schlüsselkarte für dieses Thema?

Danke, Steve

Antworten:


22

Es gibt eine einfache Bindung für "Alles auswählen" in gtk:C-/

Es ist als allgemeines GtkTextView-Signal definiert und nicht speziell Teil des Emacs-Schlüsselthemas. Aber es funktioniert gut damit. Es ist als Alternative zu definiert C-a. Während letzteres vom Emacs-Theme neu interpretiert wird, C-/bleibt es für "Alles auswählen" gültig.


Gute Antwort. Warum hatte es noch keine positiven Stimmen?
Rörd

7

Es gibt keine einzige Verknüpfung, um dies direkt zu tun.

Sie können mit bis zum Ende des Textes gehen Ctrl- eund eine Linie entfernen Ctrl- u. Dies funktioniert jedoch nur mit GtkEntryeinem einzeiligen Eingabefeld.

Wenn Sie alles in einem GtkTextView, dem mehrzeiligen Editor ähnlichen Steuerelement auswählen müssen , müssen Sie nur das mühsame Ctrl- Homegefolgt von Ctrl+ Shift- ausführen End, was mit meiner Tastatur mit 63 Tasten fast unmöglich ist.

Wenn aus dem guten Grund der Bearbeitung Effizienz oder Einschränkungen des mobilen Geräts Tastaturen, Homeund Endsind der Reichweite, dann werden Sie von bekommen. Die Auswahl von "Alles auswählen" aus dem Menü "Bearbeiten" ist eine schlechte Idee, da es Alt- e- ain Firefox, Alt- e- tin Gedit, Alt- e- sin OpenOffice (auch mit Gnome-Integration), in jeder Software einen anderen Schlüssel und in einiger Software, gibt es keine „Select-all“ im Edit - Menü, wie Chrom, und in einiger Software, gibt es nicht einmal Editier - Menü selbst ist , nicht einmal ein eine versteckt mit rief werden Alt-e, wie Nautilus. Diese Inkonsistenz übertrifft den Zweck der Alt-aktivierten Menüleiste, und kein Betriebssystem, nicht einmal Windows, ist so inkonsistent. Sogar das Rechtsklick-Menü hat keine feste Verknüpfung für "Alles auswählen" - es ist normalerweise aaber tvon Anwendung zu Anwendung möglich. Das Aufrufen von Fehlerkorrekturen in jeder einzelnen Software ist nur mit einem Metaprojekt wie GNOME möglich, aber zu wissen, dass GNOME selbst einige dieser Probleme verursacht hat (das Entfernen des Bearbeitungsmenüs in 'nautilus' ist eine Entscheidung von GNOME 3), ist nicht wirklich erledigt dir viel hoffnung.

Nebenbei bemerkt: Ctrl- Homeist die einzige Abkürzung, mit der Sie an den Anfang des gesamten Texts springen können, selbst wenn Sie bei mobilen Geräten mit kleiner Tastatur die Eingabe unterbrechen.

Die Antwort endet hier. Für die Neugierigen habe ich zusätzliche Informationen:


Ein erfahrener Emacs-Benutzer würde versuchen Ctrl- x- h: Authentische Emacs, aber im Emacs-Modus von gtk3 werden keine Steuertastenfolgen verstanden. Tatsächlich sind nur eine Handvoll Emacs-Verknüpfungen definiert /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css. Auf einem Aufkleber ist genügend Platz, um alle unterstützten Emacs-Verknüpfungen aufzuschreiben.

Um die Situation noch zu verschlimmern, ist es schwierig, eine Tastenkombination für diesen Zweck zu verschieben. Wie Sie wissen, wird Ctrl- avon Emacs übernommen. Aber auch Hispanophones, die größte nicht englischsprachige Gruppe (Chinesisch ausgenommen, weil wir Ideogramme verwenden), die alles mit Ctrl- auswählen e, würden diese Tastenkombination auch von Emacs finden. Ausgenommen e, es gibt keine andere Taste in der linken Hälfte einer QWERTZ-Tastatur ohne einen bereits akzeptierten Zweck. Bei Google Übersetzer wird die UMSCHALTTASTE als "Alles auswählen" verwendet, aber weder andere Software noch andere Google-Produkte folgen der Einstellung.

Verwenden Sie Ctrl- , um eine Zeile zu leeren u. Dies hat den Vorteil, dass X SELECTION (das, das Sie mit der mittleren Maustaste ziehen) nicht überschrieben wird. Dies ist eine einzigartige Einstellung nur für den Emacs-Modus von gtk3: In echten Emacs wird nichts allein ausgeführt. in Readline- (bash, MySQL etc.) ist es zu löschen alles vom Cursor soll die Linie begining, während sein Gegenstück Ctrl- klöscht alles vom Cursor bis zum Ende der Zeile.

Einige schlagen vor, dass Sie irgendwo eine Markierung für die zufällige Auswahl mit der Tastatur hinterlassen. Möglicherweise finden Sie auch Ctrl- SPACEist im Emacs-Modus konfiguriert, um einen Anker im Text zu setzen. Trotz Konflikten mit vielen anderen Programmen (insbesondere Ideogrammeingabemethoden und automatische Vervollständigung in einigen anderen Editoren) gibt es keine Tastenkombination, mit der Sie den von Ihnen festgelegten Anker verwenden können.


Ubuntu unterstützt offiziell weder den Emac-Bearbeitungsmodus noch andere UI-Konfigurationen, die mit UI nicht möglich sind. Fehlerberichte über solche Bedürfnisse haben Vorrang. Aus diesem Grund halte ich es für das Beste, solche Fragen an Linux-generische Stellen zu stellen, z. B. Superuser.


2

Die Emacs-Bindungen werden unter /usr/share/themes/Emacs/gtk-2.0-key/gtkrc angegeben. Sie können Bindungen auch in ~ / .config / gtk-3.0 / gtk.css hinzufügen

Alles auswählen würde ungefähr so ​​aussehen:

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

Ich habe jedoch keinen Weg gefunden, es an Cxh zu binden.


2

Vorhandene Schlüsselbindung anzeigen

Für GTK3-Anwendungen können Sie die Bindungen des Emacs GTK-Schlüsselthemas (entweder lokal, wahrscheinlich unter /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css) oder im GTK-Git-Repository auf GitHub anzeigen (was nicht unbedingt Ihrer lokalen Datei entspricht, da Ihre Distribution diese möglicherweise geändert hat). .

Beim Lesen dieser Datei müssen Sie die Bedeutung der Widgets kennen

(Sehen Sie sich das Bild oben auf jeder verlinkten Site an.)

Hinzufügen einer Schlüsselbindung zur Auswahl aller

select-allfür GtkTreeViewundGtkTextView

Für GtkTreeViewund GtkTextViewWidgets gibt es ein Signal namens select-all. Sie müssen das Argument übergeben 1, damit alle ausgewählt werden und nicht die Auswahl aufgehoben wird.

Also editiere ~/.config/gtk-3.0/gtk.cssund füge so etwas hinzu:

@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

Denn GtkEntryes gibt kein select-allSignal. Stattdessen können Sie eine Folge von zwei move-cursorSignalen verwenden, die den Text markieren.

Bearbeiten ~/.config/gtk-3.0/gtk.cssund fügen Sie erneut Folgendes hinzu:

@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;
}

Feuerfuchs

Übrigens, in Firefox Alt- awählt alle für mich standardmäßig ohne Konfiguration aus (unter Verwendung des Emacs GTK-Schlüsselthemas).


1

Wenn Sie den gesamten Text in einer Region auswählen möchten, bevorzuge ich die Definition eines einfachen Makros. Drücken Sie F3 , um ein Makro zu schreiben. Dann tippe

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

Verwenden Sie dann M -w zum Kopieren (das ist das, was ich normalerweise für das Kopieren von Remote-Unix-Systemen auf lokales Windows mache) und drücken Sie dann F4 , um die Definition des Makros abzuschließen.

Jetzt ist das Definieren des Makros abgeschlossen. Drücken Sie einfach so oft F4, wie Sie die Aktion wiederholen möchten.


Das GTK-Emacs-Schlüsselthema ist nicht dasselbe wie Emacs. Fast keine der Tastenbelegungen in Ihrer Antwort funktioniert dort (und wenn Sie tatsächlich in Emacs selbst wären, könnten Sie einfach Cx h anstelle eines Makros verwenden.
Rörd

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.