An der Konsole eines unixartigen Systems kann man, die passende Shell vorausgesetzt, für seine Befehlszeilenjonglierereien einige nützliche Tastenkombinationen verwenden, die Emacs entlehnt sind. Darunter gibt es zum Beispiel forward-word
(Meta-F), backward-word
(Meta-B) und delete-word
(Meta-D). Man kann kaum gut genug betonen, wie sehr allein diese Tastenkombinationen bereits den Komfort an der Konsole steigern.
Kaum ein Computer hat heutzutage noch eine eigene Metataste. Gut, kein Problem, sagt der GNU/Linux-Anwender. Verwende ich halt Alt.
Nun verhält es sich leider mit Macs bekanntermaßen so, daß diesen nicht nur eine Meta-, sondern auch eine Alt-Taste fehlt. Stattdessen haben sie zwei andere Arten von Tasten, nämlich die Befehls- und die Wahltasten. Dabei sind die Befehlstasten (abgekürzt Cmd für Command, als Zeichen: ⌘) diejenigen Tasten, mit denen man Befehle ausführt, die man auch in der Menüleiste findet, wie z.B. das Kopieren, Ausschneiden und Einsetzen von Objekten (⌘C, ⌘X und ⌘V) oder das Öffnen und Speichern einer Datei (⌘O und ⌘S), aber auch wichtige Funktionen der Fensterverwaltung wie das Verstecken der aktiven Anwendung oder das Wechseln zu einer anderen (⌘H und ⌘⇥). Die Wahltaste (abgekürzt Opt für Option, als Zeichen: ⌥) übernimmt indes die Aufgabe, die auf vielen nichtamerikanischen PC-Tastaturen von AltGr wahrgenommen wird, d.h. die Auswahl von Sonderzeichen, die man nicht allein mit der Umschalttaste erreicht.
Dieser Umstand führt den befehlszeilenaffinen Mac-Anwender mit Nicht-US-Tastatur schnurstracks in ein Dilemma: Wenn er die Befehlstaste als Metataste verwenden würde, könnte er den Terminalemulator nicht mehr vernünftig bedienen. Aus diesem Grund bieten weder iTerm noch das Mac-OS-eigene Terminal.app diese Option überhaupt an. Andererseits kann er auch die Wahltaste nicht als Metataste verwenden, da er dafür entweder auf das US-Tastaturlayout umsteigen oder aber auf die Eingabe von Sonderzeichen verzichten müßte. Die erstere Möglichkeit ist für jemanden, der nicht nur programmiert, sondern auch hin und wieder mal einen Text in seiner Muttersprache verfaßt -- und wer tut das nicht? -- viel zu disruptiv. Die andere Möglichkeit ist genauso eine Katastrophe, da sie die Arbeit mit der Shell fast unmöglich macht. Was ist also zu tun?
Ich habe für mich eine Zwischenlösung gewählt: Da die Wahltaste für mich wegen meiner Verwendung eines bestimmten Nichtstandardtastaturlayouts an der Konsole völlig unabdingbar ist, verwende ich die Befehlstaste als Metataste, aber nur partiell. Genau gesagt: Ich lasse iTerm die Tastenkombinationen ⌘F, ⌘B und ⌘D in die jeweiligen Pendants mit Metataste übersetzen und lasse den Rest unberührt. Das geht wie folgt:
Man öffnet in iTerm den Menüpunkt Bookmarks -> Manage Profiles.
Man klickt auf das Dreieck neben Keyboard Profiles.
Man klickt auf Global.
Man klickt auf +.
Unter Key: wählt man hex code und gibt daneben 62 ein.
Unter Modifier: wählt man Command an.
Unter Action: wählt man send escape sequence und gibt darunter b ein.
Man aktiviert das Kästchen High interception priority.
Man klickt auf OK.
Man wiederholt die Schritte 4 bis 9 mit den Werten 66 für den Hexcode und f für die Escape-Sequenz.
Man tut dasselbe für die Werte 64 als Hexcode und d als Escape-Sequenz.
Man schließt das Fenster.
Wie man weitere Befehlstasten- zu Metatastenübersetzungen bastelt, sollte man sich jetzt denken können.
Wie dem auch sei, mir hilft diese Konfiguration ungemein.
Comments
Hm. Man kann doch Aquamacs so schöne alternative Keybindings geben. Und im Gegensatz zu XTerm braucht Aquamacs keinen X-Server. Wie stehts da mit "M-x ansi-term"? Müsste das Problem doch auch lösen.
ansi-term ist zwar eine Möglichkeit, um seine geliebten Shelltastenkürzel verwenden zu können, hindert einen bei entsprechender Konfiguration von Aquamacs aber wiederum daran, die Befehlstaste für das Fenstermanagement zu verwenden, was gerade eines der Probleme ist, die ich vermeiden wollte.
Abgesehen davon, habe ich Terminal und Editor ganz gern in getrennten Anwendungen. Ich finde das übersichtlicher.
Submit a comment
Note: This website uses a JavaScript-based spam prevention system. Please enable JavaScript in your browser to post comments. Comment format is plain text. Use blank lines to separate paragraphs.