Emacs-ähnliche Tastenkombinationen systemweit?

27

Gibt es eine Möglichkeit, Emacs-ähnliche Tastaturkürzel (zumindest die unten genannte Untergruppe) für das gesamte Betriebssystem festzulegen? Dies ist in einigen Apps wie dem Terminal, Emacs (go figure :) und zusätzlich durch spezielle Plugins in einigen anderen Apps (Eclipse) möglich, aber ich habe mich so daran gewöhnt, durch Text zu blättern und nie zu Pfeilen springen zu müssen, dass ich möchte dies systemweit tun können, damit ich es tun kann, wann immer ich tippe - z. B. in der Rhythmbox nach Songs suchen, Dinge in den Bindestrich oder das HUD eingeben, Mails in Thunderbird oder Gmail schreiben ... kombos, die mich am meisten interessieren, sind:

  • Cf - vorwärts
  • Cb - rückwärts
  • Ca - nach Hause
  • Ce - Ende
  • CD - löschen
  • Ck - Zeile löschen

(Hinweis für Nicht-Emacs-Benutzer - C bedeutet Strg)

Metakermit
quelle

Antworten:

15

Basierend auf: https://superuser.com/a/516847/205010

  1. Installieren Sie das Gnome-Tweak-Tool: sudo apt-get install gnome-tweak-tool

  2. Öffne es: gnome-tweak-tool

  3. Gehe zu Keyboard and Mouseund wechsle Key ThemezuEmacs

Eyal Levin
quelle
1
Das ist ziemlich cool, aber viele Dinge funktionieren nicht, dh Cb, Ck usw. Die Lösung ist wahrscheinlich, alles in Emacs zu ziehen, dh Browser, E-Mail usw., anstatt zu versuchen, die
Tastenzuordnungen
Wo funktioniert es nicht? In meinem Fall funktioniert es die meiste Zeit ziemlich gut.
Eyal Levin
Wenn eine App eine entsprechende Verknüpfung implementiert, hat dies anscheinend Vorrang. Was umständlich ist
bph
Ich glaube nicht, dass es bei allen Apps passiert. In Chrome habe ich einige Male festgestellt, dass die globalen Emacs-Verknüpfungen Vorrang vor den spezifischen Verknüpfungen für Webanwendungen haben.
Eyal Levin
Mein Testfall war die Verwendung von Yahoo Mail und Google Mail in einem Firefox-Browser. In beiden Fällen hat Ca Ce Cf Cp Cn wie erwartet funktioniert, aber Cb hat die Fettschrift umgeschaltet, und Ck hat einen Verknüpfungsdialog aufgerufen. Für meine spezielle Anwendung ist es also ein Hit und Miss - ich muss Chrome ausprobieren und sehen, ob es anders ist
bph
14

Ich habe es geschafft, das Problem mithilfe von AutoKey zu lösen , wie in dieser Antwort empfohlen . Einige meiner Sätze sind:

content                     |   hotkey             |   description
---------------------------------------------------------------
<ctrl>+f                    |   <ctrl>+<alt>+f     | replace the find operation
<home>                      |   <ctrl>+a           | begining of line
<end>                       |   <ctrl>+e           | end of line
<left>                      |   <ctrl>+b           | back one letter
<right>                     |   <ctrl>+f           | forward one letter
<delete>                    |   <ctrl>+d           | delete one letter
<home><shift>+<end><delete> |   <ctrl>+k           | kill line

(Ja, die Kill Line Combo war fies zu finden :)

Sie könnten weiterhin Dinge ersetzen, aber ich möchte nicht, dass die mentale Neuzuordnung zu groß wird (z. B. Strg + n öffnet kein neues Fenster, sondern wechselt in die nächste Zeile). Alles in allem ist AutoKey eine coole App!

Wie auch immer, jetzt habe ich die Emacs-Ergonomie, dass ich in Ubuntu nie die "Buchstabentasten" belassen muss - in jedem Textfeld, das ich bearbeite. Yeiii!

Update: Als ich tiefer in das Spielen mit AutoKey einstieg, um alles zu optimieren, nahm ich einige Änderungen vor. Sie können meine vollständige AutoKey Ubuntu-Emacs-Konfiguration in meinem dotfiles git repo sehen (und installieren) .

Metakermit
quelle
Also habe ich versucht, ein Wort vorwärts <alt> + f zu verwenden, aber es kollidierte immer wieder mit dem Öffnen einer Datei in Emacs. Bist du mit diesem Problem konfrontiert? wie hast du das gelöst
Sambatyon
4

Es gibt eine andere Lösung, die keine Anwendungen von Drittanbietern betrifft, die hier veröffentlicht wurden. Emacs keybindings in Ubuntu 12.04

dolzenko
quelle
Diese Methode funktioniert nicht in Anwendungen wie Thunderbird, in denen Strg + F als "Zeichenfolge suchen" und nicht als "Cursor vorwärts bewegen" interpretiert wird.
Holocronweaver
@holocronweaver wahr, ich habe es leider aufgegeben, Emacs-Schlüssel in Thunderbird zum Laufen zu bringen, aber die meisten anderen Eingaben (insbesondere in Chrome) funktionieren fast. Ich kann nicht anders, als das Gefühl zu haben, dass die AutoKey-Lösung ein Weg ist, der auch zu unendlichem Tüfteln und Frust führt.
Dolzenko
Nach ein wenig Bearbeitung, um es meinem Geschmack anzupassen, hat die AutoKey-Lösung in Firefox und Thunderbird unter Ubuntu 14.04 ziemlich gut funktioniert. Noch mehr Tests zu tun.
Holocronweaver