Wie kann ich ⌘ ← und ⌘ → für die Home / End-Kombination für Terminal verwenden?

21

Warum macht fn- - (oder andere) ein Home / End in Terminal, aber a - funktioniert überall anders?

Um ganz klar zu sein, ist die Frage, wie man Terminal dazu bringt, Command+ mit nach Hause zu nehmen und zu beenden.

Jackie
quelle

Antworten:

21

So bequem es auch sein mag, Terminal kann die von Ihnen gewünschten Funktionen nicht einfach bereitstellen.

Der Grund dafür ist, dass Programme, die in Terminal ausgeführt werden, unterschiedliche Regeln für das Bewegen des Cursors an den Anfang / das Ende der Zeile haben, zum Beispiel:

  • bash(und andere Muscheln) verwenden CtrlAundCtrlE
  • vinutzt 0und $/ oderShift4

Andere Programme verwenden möglicherweise andere Tasten. Es gibt keine universelle Tastenkombination zum Positionieren des Cursors am Anfang / Ende der Zeile.

Natürlich könnte Terminal eine Liste mit Tastenkombinationen für eine Reihe gängiger Programme führen, überprüfen, was läuft, und die richtigen Tasten für Sie senden, oder ein Menüelement wie Cursor zum Zeilenanfang innerhalb der Shell bewegen ⌘ ← bereitstellen und dann senden CtrlAhinter den Kulissen. Aber ich denke, Apple-Ingenieure dachten, wenn Sie sich auf CLI- Territorium begeben, kennen Sie die Besonderheiten.

Als Randnotiz stellt Terminal bereit Optionund Optionwelche verhält sich bashwie erwartet und bewegt den Cursor an den Anfang des vorherigen / nächsten Wortes. Dies liegt daran, dass diese Tastenkombinationen Escbund zugeordnet sind Escb( man bashweitere Informationen finden Sie im Abschnitt "Befehle zum Verschieben"). Zum viBeispiel funktioniert nur die letztere (Art von) (am Ende dieser Antwort werde ich zeigen, wie man konfiguriert vi, um mit Optionund zu arbeiten Option).

Aber dank Automator, Applescript und Bash - Aliase können Sie erhalten und an die Arbeit mit bash(und möglicherweise andere Schalen) und vi.

Der erste Schritt ist das Abbilden von und nach CtrlAund CtrlE. In einem zweiten Schritt werde ich Ihnen zeigen, wie Sie konfigurieren vi, um zu ehren CtrlAund CtrlE(was infolgedessen vikompatibel mit und macht ).

Karte und nach CtrlAundCtrlE

  1. Gehen Sie im Terminal zu Einstellungen ...> Einstellungen> [Ihr aktives Profil]> Tastatur: Bildbeschreibung hier eingeben

  2. Drücken Sie +, wählen Sie "Cursor links", "Strg-Umschalt" als Modifikator und drücken Sie "Text senden:". Drücken Sie dann CtrlA( \001erscheint im Textfeld) und bestätigen Sie mit OK: Bildbeschreibung hier eingeben

    (In einer früheren Version dieser Antwort habe ich "Umschalt" als Modifikator verwendet. Ich habe festgestellt, dass diese Einstellung im Widerspruch zu shiftder vorherigen Registerkarte "Terminal" steht, wenn Sie sie nicht sofort loslassen . Verwenden von "Strg-Umschalt" behebt das.)

  3. Fügen Sie nun eine Tastenkombination für "Cursor rechts" hinzu, drücken Sie jedoch CtrlE( \005wird im Textfeld angezeigt). Bestätigen Sie mit OK.

  4. Öffnen Sie Automator (drücken Sie beispielsweise, spaceum Spotlight aufzurufen , und geben Sie Automator ein ), wählen Sie Datei> Neu und wählen Sie Service:

    Bildbeschreibung hier eingeben

  5. In Run AppleScriptden rechten Bereich ziehen: Bildbeschreibung hier eingeben

  6. Geben Sie das folgende Skript ein:

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 123 using {shift down, control down}
            end tell
        end tell
    end run

    und speichern unter Move Cursor to Beginning of Line:

    Bildbeschreibung hier eingeben

  7. Wiederholen Sie die Schritte 4. bis 6. mit diesem Skript:

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 124 using {shift down, control down}
            end tell
        end tell
    end run

    und speichern unter Move Cursor to End of Line:

    Bildbeschreibung hier eingeben

  8. So sieht Terminal> Services jetzt aus:

    Bildbeschreibung hier eingeben

Konfigurieren Sie vizu Ehren CtrlAundCtrlE

  1. Öffnen Sie .bashrcmit Ihrem Lieblingseditor und fügen Sie diese Zeile hinzu:

    alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'

    Die ersten beiden mapBefehle geben viman, wie und zu interpretieren sind, ControlEund bewegen den Cursor an den Anfang bzw. das Ende der Zeile.ControlA$0

    Die letzten beiden mapBefehle weisen Sie viman, den Cursor wortweise zu bewegen, wie Sie es erwarten würden, wenn Sie optionund drücken Option.

Vorbehalte

Sie werden feststellen, dass zwischen dem Drücken von oder und der tatsächlichen Bewegung des Cursors eine kurze Verzögerung liegt .

Bedenken Sie, dass dies nur für Programme funktioniert, die CtrlA/ ehren CtrlE, und dass Sie möglicherweise trotzdem die spezifischen Tastenkombinationen für jedes Programm lernen möchten, das Sie in Terminal verwenden.

(Getestet unter macOS Sierra 10.12.4)

jaume
quelle
3
Vielen Dank für die ausführliche Antwort, gibt es eine Petition an nur noch Apple eine Start / Ende - Taste auf der nächsten Redesign :-) schließen
Jackie
Es freut mich, dass ich helfen konnte.
12.
Wow .. all das, um eine verdammte Abkürzung zu bekommen
levesque
Dies ist eine gute Antwort. Sie könnte jedoch verbessert werden, indem alle fremden Informationen ausgeschlossen werden, bei videnen es sich um eine völlig andere Anwendung als das Terminal handelt.
Axiopisty
1
Das ist ein toller Trick. Ich habe es auch geschafft, das AppleScript zum Laufen zu bringen, indem ich die Schlüsselcodes für "Home" und "End"
gesendet habe
2

Natürlich ist es möglich.

Erstens können Sie das kostenlose Tool "DoubleCommand" verwenden, wenn Sie eine Windows-Tastatur mit HOME / END-Tasten haben, damit sie sich so verhalten, wie sie sollten (Anfang / Ende der Zeile).

Zweitens gehen Sie für das Terminal zu den Einstellungen Tastatur, bearbeiten Sie das Symbol / die Taste, die wie ein Pfeil nach oben links aussieht, wählen Sie "Text senden" und geben Sie Strg + a ein. Getan!

Gleiches gilt für den Endknopf.

Wenn Sie keine PC-Tastatur haben, können Sie dies auch mit anderen Tastenkombinationen tun.

George Katsanos
quelle