Ordnen Sie "Home" und "Ende" dem Anfang und Ende der Zeile neu zu

Die meiste Rechenzeit verbringe ich mit Linux (mit gelegentlicher Zeit mit Windows). Auf diesen Plattformen springen die Tasten Homeund Enduniversell zum Anfang oder Ende der aktuellen Zeile.

Ich gewöhne mich allmählich daran, den einen Apple-Computer in meinem Leben zu verwenden, aber es ist immer noch frustrierend, dass diese Tasten anscheinend an den Anfang und das Ende des Dokuments gebunden sind und es anscheinend überhaupt keine Taste für die Zeile gibt basierte Aktionen.

Meine Frage:

  1. Gibt es vorhandene Tastenkombinationen, die ich für Zeilenanfang und -ende vermisse? (Ich verwende meistens ein Terminal, Chrome und LibreOffice)
  2. Gibt es eine Möglichkeit, die Funktionen dieser Tasten mit den Funktionen zu verknüpfen, mit denen ich vertraut bin? Ich bin bereit, die dokumentbasierten Versionen aufzugeben, die mir wenig nützlich erscheinen.

Außerdem zwei Vorbehalte:

  1. Ich bin nicht der einzige Benutzer auf dem System. Es wäre schön, wenn meine Benutzereinstellungen die Erfahrung anderer nicht beeinträchtigen würden. Wenn dies nicht möglich ist, habe ich wahrscheinlich die stärkste Präferenz!
  2. Ich verwende mehrere Sprachen und wechsle zwischen Tastaturlayouts, sodass erwartet wird, dass alle Lösungen auch dann funktionieren, wenn zwischen mehreren Tastaturlayouts umgeschaltet wird.
Beachten Sie, dass ich zwar eine Lösung gefunden und meine eigene Frage beantwortet habe, aber für einfachere oder vielseitigere Lösungen offen bin. Auch der Prozess, dies zu entdecken, ist nicht klar. Wo finden Sie beispielsweise Tastencodes und Aktionsnamen, wenn ich weitere Tasten neu zuordnen möchte? Fühlen Sie sich frei, Antworten hinzuzufügen, wenn Sie über relevantes Wissen verfügen!
Ich hasse meinen Mac aus genau diesem Grund. Jedes System verwendet home und end außer mac.
Das war mein größter Fluch, seit ich den Mac benutze

Antworten (13)

Die Standard-Shortcuts zum Bewegen zum Anfang oder Ende von (umbrochenen) Zeilen sind und . und oder Aund Ean den Anfang oder das Ende von nicht umgebrochenen Zeilen (oder Absätzen) gehen. und bewegen sich wortweise rückwärts/vorwärts, und alle diese sind mit dem Halten kompatibel Shift, um während der entsprechenden Bewegungen auszuwählen.

Sie könnten Anfang und Ende neu zuordnen, indem Sie ~/Library/KeyBindings/eine Eigenschaftsliste wie folgt erstellen und speichern DefaultKeyBinding.dict:

{
    "\UF729"  = moveToBeginningOfLine:; // home
    "\UF72B"  = moveToEndOfLine:; // end
    "$\UF729" = moveToBeginningOfLineAndModifySelection:; // shift-home
    "$\UF72B" = moveToEndOfLineAndModifySelection:; // shift-end
}

Die meisten Tastenkombinationen zum Bearbeiten von Text in OS X sind in definiert /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict.

Das Anwenden von Änderungen erfordert das erneute Öffnen von Anwendungen. DefaultKeyBinding.dict wird von einigen alten Versionen von Xcode (funktioniert mit der neuesten Version 6.3.1), Terminal und vielen plattformübergreifenden Anwendungen ignoriert.

Weitere Informationen zu den anpassbaren Tastenkombinationen finden Sie unter Cocoa Text System und auf meiner Website .

Die Tastenbelegung des Terminals kann unter „Einstellungen“ > „Profile“ > „Einstellungen“ > „Tastatur“ angepasst werden. \033OHspringt zum Anfang einer Zeile und \033OFzum Ende einer Zeile.

In Eclipse sollten Tastenbelegungen in Preferences > General > Keys geändert werden. Sie müssen die Standardbindungen für die Befehle Line Start und Line End ändern (ersetzen Sie ⌘← durch ↖ und ⌘→ durch ↘). Damit die Auswahl funktioniert, ändern Sie auch Select Line Start und Select Line End .

PS: Möglicherweise müssen Sie sich abmelden und erneut anmelden, damit die ~/Library/KeyBindings/DefaultKeyBinding.dictÄnderung wirksam wird.

Nützliche Informationen zu den Tastenzuordnungen - Ich habe diese mit dem (kommerziellen) BetterTouchTool verwendet, siehe diese Antwort .
Dies funktioniert meiner Erfahrung nach in den meisten Anwendungen nicht. Es ist besser, Karabina-Elemente zu verwenden.
Das ist großartig, weil es in Terminal, iTerm2, Chrome, Sublime und Outlook funktioniert. Die Alternative (Karabina) ist weniger gut, da sie "Home" auf Command+LeftArrow abbildet, wodurch tatsächlich Fenster im Terminal gewechselt werden. Sie müssen daran denken, alle Apps neu zu starten, nachdem Sie die .dict-Datei gespeichert haben.
Dies funktioniert nicht mit vim
/StandardKeyBinding.dictist binär. Du kannst es nicht lesen
Ihr Website-Link ist defekt
@Green für die Bearbeitung von binären Plists siehe apple.stackexchange.com/questions/101719/…
Diese Einstellung funktioniert bei mir unter Mac OS Mojave mit angeschlossener externer Tastatur.
Vielen Dank für diesen tollen Einsatz, den Sie dort geleistet haben! Danke schön.
Ich danke dir sehr! Bericht: Outlook, Word, Terminal und Slack Snippet funktionierten sofort. MacOS Notes und Chrome funktionierten nach dem Neustart der Anwendung. Slack Nachricht hinzufügen berücksichtigt dies nicht. Webstorm hat immer funktioniert.
OMG als Sie so sehr. Danke Kommentare sind Lärm, aber danke. Ich bin seit 3 ​​Monaten neu bei AppleMac und als Entwickler, der ständig Tastaturkürzel verwendet, habe ich an verschiedenen Stellen des Tages auf meinen Bildschirm geschrien. Das hat das Leben wieder normal gemacht!
Dies funktioniert nicht mehr für Safari (und viele andere Programme) in Catalina.
Leider verhalten sich meine Home- und End-Tasten in Slack immer noch nicht richtig, was mich verrückt macht. Aber generell ist dieser Tipp hilfreich. Viele andere Artikel (einschließlich damieng.com/blog/2015/04/24/… ) erwähnen ctrl-shift-homeund ctrl-shift-end, aber ich habe nie gesehen, dass diese funktionieren, unabhängig von der App.
funktioniert nicht mehr in Seiten
Arbeitete an BigSur für Chrome.
Die Tastenbelegung des Terminals scheint in Monterey nicht zu funktionieren

Ich bin derzeit auf Lion 10.7.4 und aus irgendeinem seltsamen Grund hat das Bearbeiten ~/Library/KeyBindings/DefaultKeyBinding.dictbei mir nicht funktioniert.

Ich habe festgestellt, dass das Addon KeyRemap4MacBook System Preferences (das jetzt Karabiner-Elements heißt ) wirklich gut funktioniert, und Sie können damit auch eine Vielzahl von Tasten neu zuordnen, ohne Textdateien bearbeiten zu müssen. ZB Ändern der Bild-auf-/Bild-ab-Tasten, damit der Cursor auch auf Bild-auf/-ab folgt.

Laden Sie einfach das Add-on herunter und navigieren Sie in den Systemeinstellungen zum For PC UsersAbschnitt und aktivieren Sie Use PC Style Home /End.

Beachten Sie, dass ich (Change Home to Command+Left)anstelle von ausgewählt habe (Change Home to Control+A), als ob ich die erste ausgewählt hätte, und wenn die Zeile umgebrochen wäre, würde Home mich zum Anfang der umgebrochenen Zeile bringen, einige Zeilen darüber, anstatt zum Anfang der aktuellen Zeile.

KeyRemap4MacBook

Karabiner ist großartig und auch Open Source
Mit 10.10.5 scheinen die anderen Vorschläge nicht zu funktionieren, aber Karabiner (der neue Name für KeyRemap4MacBook – funktioniert auf allen Mac-Produkten) funktioniert gut und benötigt keinen Neustart, damit die Änderungen wirksam werden. Immens hilfreich für diesen Mac-Noob; hoffentlich können auch andere davon profitieren.
Karabiner ordnet nur verbundene Geräte zu, daher funktioniert dies nicht, wenn Sie VNC, Splashtop usw. verwenden. Die KeyBindings-Antworten funktionieren jedoch für Splashtop (das ich derzeit verwende) und ich gehe davon aus, dass sie auch funktionieren würden für VNC.
Just download the addon, and in the System Preferences panel,In den Systemeinstellungen habe ich es nicht gefunden. Ich habe es im Launchpad gefunden. Mac-Version: El Capitan 10.11.3
Stand heute: „Karabiner funktioniert derzeit nicht auf macOS Sierra.“
@james.garriss Probieren Sie Karabiner-Elements aus – derselbe Autor, aber von Grund auf neu geschrieben, um Sierra zu unterstützen (es befindet sich noch in der Entwicklung, daher sind sie ziemlich rauh) – github.com/tekezo/Karabiner-Elements
@jklp Leider ist die Funktionalität, die für die Neuzuordnung der Home- und End-Tasten auf der erweiterten Apple-Tastatur erforderlich ist, in Karabiner Elements noch nicht verfügbar. Ich persönlich scheine das Muskelgedächtnis für Strg-a, Strg-e zu haben, wenn ich in der Konsole arbeite, aber wenn ich in einer GUI-App wie Sublime arbeite, ist es super schwer, mich daran zu erinnern. Für Sublime (speziell) gibt es jedoch eine Lösung: coderwall.com/p/upolqw/…
Wenn Sie im Jahr 2020 sind und wie ich keine Ahnung haben, wie Karabiner eingerichtet werden soll, gehen Sie zur Registerkarte Komplexe Änderungen > Regel hinzufügen > Weitere Regeln aus dem Internet importieren und suchen Sie dann nach "home" und Sie werden einige Regeln zum Importieren finden.
Wenn Sie im Jahr 2021 sind und die For PC-Regeln möchten, gehen Sie zur Registerkarte Komplexe Änderungen > Regel hinzufügen > Weitere Regeln aus dem Internet importieren und suchen Sie dann nach „PC“ und Sie werden einige Regeln zum Importieren finden. (Danke @RodrigoSaling) für den ersten Tipp
Ich würde niemals in Betracht ziehen, ein Tool zu verwenden, das die Überwachung aller Tastatureingaben erfordert, auch wenn es nicht die aktive Anwendung ist, Open Source oder nicht.
Im Juli 2021 verwende Personal PC-Style Shortcuts(@Bave Lee)und importiere ich Home key to the beginning of the line (Control + a)andEnd key to the end of the line (Control + e)
Hat bei mir gerade am 12.3 funktioniert. Musste nicht neu starten oder abmelden. Wahl-geklickt auf Finder und neu gestartet und es funktionierte gut in FF, Safari und Standard-macOS-Anwendungen. Funktionierte nicht in Terminal oder iTerm. Nachdem ich den Kommentar von @Player1 gelesen habe, bin ich versucht, eine Neuzuordnung auf Ctrl+aund vorzunehmen, obwohl dies zu Ctrl-eunterschiedlichen Inkompatibilitäten führen wird.

Dank dieses Artikels habe ich herausgefunden, wie ich die Tasten Homeund erneut Endan zeilenbasierte Aktionen auf Benutzerbasis binden kann, die über Tastaturlayouts hinweg funktionieren.

Sie müssen eine Wörterbuchdatei mit den Tastencodes und neuen Befehlen erstellen, die zugeordnet werden sollen, aber stellen Sie zuerst sicher, dass der Ordner, in dem diese abgelegt werden soll, vorhanden ist, indem Sie ein Terminal öffnen und Folgendes ausführen:

$ mkdir -p ~/Library/KeyBindings

Erstellen oder bearbeiten Sie dann die Datei unter ~/Library/KeyBindings/DefaultKeyBinding.dict. Wenn es vorher nicht existierte, fügen Sie den gesamten Abschnitt unten hinzu. Wenn es existiert, fügen Sie einfach die vier neuen Zeilen innerhalb des Blocks hinzu.

{
    "\UF729"  = "moveToBeginningOfLine:";
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Um die Einstellungen zu aktivieren, müssen Sie sich von Ihrem Benutzer abmelden und erneut anmelden.

Beachten Sie, dass dies sowohl die normale Bewegung des Cursors als auch die Kombination Shift+ Home/ Endzur Auswahl während der Cursorbewegung abdeckt.

Ich verwende OS X Sierra, und die ~/Library/KeyBindings/DefaultKeyBinding.dictvon anderen Benutzern vorgeschlagene Lösung hat teilweise funktioniert: Einige Apps wie TextEdit haben jetzt das gewünschte Verhalten, andere Apps jedoch nicht. DefaultKeyBinding.dictGoogle Chrome und Slack sind zwei, die die Datei nicht zu respektieren scheinen .

Um die verbleibenden Apps zu reparieren, habe ich BetterTouchTool (Legacy) / BetterTouchTool (aktuell) verwendet , um App-spezifische Tastenkombinationen zu erstellen , die an die nativen Verknüpfungen von OS X Homeund . BetterTouchTool ist nicht kostenlos, aber es gibt eine 45-tägige Testphase.EndCtrl+ACtrl+E

Um dies zu tun:

  1. BetterTouchTool installieren und starten
  2. Wechseln Sie zur Registerkarte Gesten > Tastatur
  3. Klicken Sie unter „Anwendung auswählen“ auf +die App, die Sie reparieren möchten, und wählen Sie sie aus.
  4. Klicken Sie auf „Neue Tastenkombination hinzufügen“, weisen Sie die HomeTaste im Feld „Tastenkombination aufzeichnen“ zu und stellen Sie „Andere Tastenkombination auslösen“ auf Strg+A ein. Wiederholen Sie für Endund Strg+E.
  5. Wenn Sie fertig sind, sollte das Panel so aussehen:BetterTouchTool-Bedienfeld
  6. Erlauben Sie unter den erweiterten Einstellungen von BetterTouchTool, dass es beim Start ausgeführt wird.

Hinweis: Beenden Sie die BetterTouchTool-App nicht, sonst hört sie auf, Tastendrücke abzufangen. Schließen Sie einfach das Fenster und es sollte im Hintergrund weiterarbeiten.

Danke - habe es gerade für El Capitan verwendet, da ich bereits für BetterTouchTool bezahlt habe und es mit Chrome, Slack und anderen Apps gut funktioniert.
Zum Auswählen während des Springens (z. B. in Word-Dokumenten oder OneNote) müssen Sie Shift-Home auch Shift-Command-Linkspfeil (Pfeil beachten, nicht Control A) und ähnlich für Ende zuordnen. Habe es von hier community.folivora.ai/t/…
Endlich! Ich habe eine Lösung für dieses fehlende Mapping. Danke für den Tipp.
Seitdem bin ich zu Karabiner Elements gewechselt, wie in der Antwort von Jason Waters erläutert. Es ist einfacher einzurichten.
Diese Lösung funktioniert super! Der einzige Unterschied besteht darin, dass die Benutzeroberfläche 2022 etwas anders aussieht und ich die zugewiesenen Aktionen ⌘ <- und ⌘ -> machen musste.

Ich habe dies mit Karabiner Elements erreicht .

Sie müssen den Regelabschnitt ~/.config/karabiner/karabiner.jsonmit dem JSON-Array aus dem folgenden Code aktualisieren. Dadurch werden die Home- und End-Tasten neu zugeordnet, damit sie so funktionieren, wie sie auf PC/Windows funktionieren.

{
  "rules": [
    {
      "description": "change home key to command + left_arrow",
      "manipulators": [
        {
          "from": {
            "key_code": "home"
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                "left_command"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change home key to command + left_arrow while presing shift (selection)",
      "manipulators": [
        {
          "from": {
            "key_code": "home",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                "left_command",
                "left_shift"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change end key to command + right_arrow",
      "manipulators": [
        {
          "from": {
            "key_code": "end"
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                "left_command"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change end key to command + right_arrow while presing shift (selection)",
      "manipulators": [
        {
          "from": {
            "key_code": "end",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                "left_command",
                "left_shift"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

siehe auch: github gist

Geben Sie hier die Bildbeschreibung ein

Sie können dies vereinfachen, indem Sie verwenden "modifiers": { "optional": [ "any"] }, um das Duplizieren einer Auswahlregel zu vermeiden (diese Formatierung im Kommentar ist schrecklich, kopieren Sie sie in den Editor, um sie richtig zu lesen, nehme ich an).{ "description": "Home is Beginning of line", "type": "basic", "from": { "key_code": "home", "modifiers": { "optional": [ "any"] } }, "to": [{ "key_code": "left_arrow", "modifiers": [ "left_command" ] }] }
Eine Regel, um dies zu erreichen, kann auch aus dem Repository importiert werden, indem Sie in den Complex modificationsAbschnitt gehen und auf klicken Import more rules from the internet, was einen Browser auf ke-complex-modifications.pqrs.org öffnet , nach den Ergebnissen suchen Homeund daraus greifen . Home and EndGetestet auf Big Sur.

Ich verwende das fantastische KeyRemap4MacBook mit den benutzerdefinierten Einstellungen unten.

Es behebt Home/End in den meisten Anwendungen und vermasselt iTerm2 nicht.

Von https://gist.github.com/lhotari/6134223181439b9ed0a1

<?xml version="1.0"?>
<!-- ~/Library/Application Support/KeyRemap4MacBook/private.xml -->
<!-- Custom keyboard mappings for MBP using https://pqrs.org/macosx/keyremap4macbook/ -->
<root>
    <item>
        <name>Lari's PC Style Home/End</name>
        <appendix>(Change Home to Command+Left)</appendix>
        <appendix>(Change End to Command+Right)</appendix>
        <appendix></appendix>
        <appendix>{{ PC_STYLE_BINDINGS_IGNORE_APPS_DESCRIPTION }}</appendix>
        <identifier>lari.remap.pclikehomeend</identifier>
        <block>
            <only>DREAMWEAVER</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME, ModifierFlag::SHIFT_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END,  ModifierFlag::SHIFT_L</autogen>
        </block>
        <block>
            <only>BLUEFISH,WORD,EXCEL,POWERPOINT</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END</autogen>
        </block>
        <!--
        <block>
            <only>EMACS, TERMINAL, X11, ECLIPSE</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::A, ModifierFlag::CONTROL_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::E, ModifierFlag::CONTROL_L</autogen>
        </block>
         -->
        <block>
            <not>{{ PC_STYLE_BINDINGS_IGNORE_APPS }}</not>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME,             KeyCode::CURSOR_LEFT,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,              KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L</autogen>
        </block>
    </item>
</root>
Wurde nicht aktualisiert, um mit Sierra zu arbeiten, siehe Link oben.
Dieses Tool wurde in Karabiner umbenannt und funktioniert anscheinend mit OS X El Capitan 10.11, Sierra 10.12 und High Sierra 10.13.

Die Antwort von @Lri ist großartig ( vielen Dank; das hat mich wahnsinnig gemacht ), aber am Ende habe ich sie ein wenig geändert.

(In dieser Antwort verwende ich die Nicht-Apple-Namen für Schlüssel, also Command= Superund Option= Alt)

SuperLeftund SuperRightwurde früher tatsächlich auf moveToLeftEndOfLineund abgebildet moveToRightEndOfLine. Die Verwendung von moveToBeginningOfLineand moveToEndOfLine, wie es @Lri tut, kann zu inkonsistentem Verhalten führen.

Es gibt eine ganze Reihe weiterer Unterschiede zwischen den Apple-Shortcuts und den Shortcuts aller anderen, die ich hinzugefügt habe. Zum Beispiel sollen ControlLeftund ControlRightsich zwischen Wörtern bewegen; nicht AltLeftund AltLeft. Ich denke nicht, dass dies erschöpfend ist, aber es funktioniert ziemlich gut für mich im Moment. Ich bin davon ausgegangen, dass der Benutzer bereits die Tasten Controlund vertauscht hat, um das SuperAusschneiden, Kopieren und Einfügen zu korrigieren.

~/Library/KeyBindings/DefaultKeyBinding.dict:
{
    "\UF729"   = moveToLeftEndOfLine:; // home
    "\UF72B"   = moveToRightEndOfLine:; // end
    "$\UF729"  = moveToBeginningOfLineAndModifySelection:; // shift-home
    "$\UF72B"  = moveToEndOfLineAndModifySelection:; // shift-end

    "@\UF700"  = moveUp:;  //super-up
    "@\UF701"  = moveDown:;  //super-down
    "@\UF702"  = moveWordLeft:;  //super-left
    "@\UF703"  = moveWordRight:;  //super-right

    "@$\UF700" = moveUpAndModifySelection:;  // super-shift-up
    "@$\UF701" = moveDownAndModifySelection:;  // super-shift-down
    "@$\UF702" = moveWordLeftAndModifySelection:;  // super-shift-left
    "@$\UF703" = moveWordRightAndModifySelection:;  // super-shift-right

    "@\UF728"  = deleteWordForward:;  // super-delete
    "@\U7F"    = deleteWordBackward:;  // super-backspace
}

Ich fand Folgendes nützlich für iterm2und zshmit Zitaten von hier :

Öffnen iTerm > Preference. Gehen Sie zu profiles tab > Keys. Klicken Sie dann auf die +Schaltfläche unten in der Tastenliste, drücken Sie Home(oder Fn+left arrowauf der schnurlosen Tastatur von Apple), Actionwählen Sie Send Escape Sequenceaus und geben Sie dann ein[1~

Wiederholen Sie dies für die EndTaste mit [~4der Escape-Tastenfolge.

Wenn Sie zsh verwenden, tun Sie dies auch:

1) Fügen Sie Folgendes in Ihre ~/.zshrcDatei ein

bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

2) Führen Sie source ~/.zshrcalle offenen Terminals ein.

iTerm2 hat auch eine Tastenbelegungsvoreinstellung „Natürliche Textbearbeitung“, die dieses Verhalten beinhaltet.
Muss auf geändert werden bindkey "^[[~4" end-of-line. Beachten Sie die Position der 4.
@Ty Danke, aber kannst du erklären warum? Die Originalquelle sowie github.com/reenhanced/zsh-config/blob/master/lib/… und github.com/ThiefMaster/zsh-config/blob/master/zshrc.d/… verwenden „^[[4 ~"
Ich kenne mich mit diesen Escape-Sequenzen nicht aus, aber für mich wird ein ^[[4~Echo ausgegeben, 4während ^[[~4der Cursor an das Ende der Zeile bewegt wird.
@ Ty Interessant. Ich habe ein bisschen gesucht, um herauszufinden, warum, aber ich konnte nur Beispiele dafür finden ^[[4~. Welche Art von Tastatur und Zeichencodierung verwenden Sie, vielleicht macht das einen Unterschied?
Was bei iTerm2 für mich funktioniert hat, war diese Antwort hier: apple.stackexchange.com/a/389587 , die vorschlägt, die Hex-Codes 0x01 für home und 0x05 für end zu senden.

Meiner Meinung nach ist Karabiner (alter Name KeyRemap4MacBook) das beste Werkzeug, um Änderungen an der Tastatur vorzunehmen. Open Source ( https://github.com/tekezo/Karabiner ), aber auch als Anwendung verfügbar ( https://pqrs.org/osx/karabiner/index.html.en ). Ich habe lange gesucht und nichts besseres gefunden.

  1. Öffnen Sie diese Datei
     /Library/KeyBindings/DefaultKeyBinding.dict (apply to all users)

oder

     ~/Library/KeyBindings/DefaultKeyBinding.dict (apply to yourself)
  1. Fügen Sie diese Zeilen hinzu:
    {
      "\UF729"  = moveToBeginningOfParagraph:; // home
      "\UF72B"  = moveToEndOfParagraph:; // end
      "$\UF729" = moveToBeginningOfParagraphAndModifySelection:; // shift-home
      "$\UF72B" = moveToEndOfParagraphAndModifySelection:; // shift-end
      "^\UF729" = moveToBeginningOfDocument:; // ctrl-home
      "^\UF72B" = moveToEndOfDocument:; // ctrl-end
      "^$\UF729" = moveToBeginningOfDocumentAndModifySelection:; // ctrl-shift-home
      "^$\UF72B" = moveToEndOfDocumentAndModifySelection:; // ctrl-shift-end
    }
Diese Antwort scheint nur das zu wiederholen, was bereits in anderen Antworten erklärt wurde, aber Ihren bevorzugten Schlüsselsatz ohne große Erklärung zu ersetzen. Vielleicht könnten Sie etwas mehr Wert hinzufügen, indem Sie erklären, wo sich dies von anderen Lösungen unterscheidet.
@Caleb: Er fügt moveToBeginningOfDocument und moveToEndOfDocument hinzu, was ich für unverzichtbar halte.

Die ursprüngliche Frage ist bereits beantwortet, aber ich habe hier die Äquivalenz fehlender Tastaturtasten mit Standardlayout (Home, Backspace, Page usw.) auf einem Mac zusammengestellt .

Dies von iExplain funktioniert für Big Sur.

{
    /* Remap Home / End keys */

    /* Home Button*/
    "\UF729" = "moveToBeginningOfLine:"; 

    /* End Button */
    "\UF72B" = "moveToEndOfLine:"; 

    /* Shift + Home Button */
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; 

    /* Shift + End Button */
    "$\UF72B" = "moveToEndOfLineAndModifySelection:"; 
    
    /* Ctrl + Home Button */
    "^\UF729" = "moveToBeginningOfDocument:";
 
    /* Ctrl + End Button */
    "^\UF72B" = "moveToEndOfDocument:";
 
    /* Shift + Ctrl + Home Button */
    "$^\UF729" = "moveToBeginningOfDocumentAndModifySelection:";

    /* Shift + Ctrl + End Button*/
    "$^\UF72B" = "moveToEndOfDocumentAndModifySelection:"; 
}

Mit dem kostenlosen BetterTouchTool, das unter http://blog.boastr.net/ verfügbar ist, können Sie auch Tastaturtasten neu zuordnen und Ihre Maus und Ihr Trackpad auf alle möglichen coolen Arten anpassen . Eine hervorragende Lösung zum Anpassen der Funktionsweise Ihrer Eingabegeräte!

Könnten Sie Ihre Antwort um Anweisungen zur Verwendung der angegebenen Software zur Lösung des ursprünglichen Problems erweitern?
Nicht frei im Sinne von „Freibier“ oder „Freiheit“. 45-tägige Testversion, kostenpflichtige Closed-Source-Software.