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:
Außerdem zwei Vorbehalte:
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. \033OH
springt zum Anfang einer Zeile und \033OF
zum 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.
/StandardKeyBinding.dict
ist binär. Du kannst es nicht lesenctrl-shift-home
und ctrl-shift-end
, aber ich habe nie gesehen, dass diese funktionieren, unabhängig von der App.Ich bin derzeit auf Lion 10.7.4 und aus irgendeinem seltsamen Grund hat das Bearbeiten ~/Library/KeyBindings/DefaultKeyBinding.dict
bei 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 Users
Abschnitt 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.
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.3Personal 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)
Ctrl+a
und vorzunehmen, obwohl dies zu Ctrl-e
unterschiedlichen 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.dict
von anderen Benutzern vorgeschlagene Lösung hat teilweise funktioniert: Einige Apps wie TextEdit haben jetzt das gewünschte Verhalten, andere Apps jedoch nicht. DefaultKeyBinding.dict
Google 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 Home
und . BetterTouchTool ist nicht kostenlos, aber es gibt eine 45-tägige Testphase.End
Ctrl+A
Ctrl+E
Um dies zu tun:
+
die App, die Sie reparieren möchten, und wählen Sie sie aus.Home
Taste im Feld „Tastenkombination aufzeichnen“ zu und stellen Sie „Andere Tastenkombination auslösen“ auf Strg+A ein. Wiederholen Sie für End
und Strg+E.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.
Ich habe dies mit Karabiner Elements erreicht .
Sie müssen den Regelabschnitt ~/.config/karabiner/karabiner.json
mit 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
"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" ] }] }
Complex modifications
Abschnitt gehen und auf klicken Import more rules from the internet
, was einen Browser auf ke-complex-modifications.pqrs.org öffnet , nach den Ergebnissen suchen Home
und daraus greifen . Home and End
Getestet 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>
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 moveToLeftEndOfLine
und abgebildet moveToRightEndOfLine
. Die Verwendung von moveToBeginningOfLine
and 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 iterm2
und zsh
mit Zitaten von hier :
Öffnen
iTerm > Preference
. Gehen Sie zuprofiles tab > Keys
. Klicken Sie dann auf die+
Schaltfläche unten in der Tastenliste, drücken SieHome
(oderFn+left arrow
auf der schnurlosen Tastatur von Apple),Action
wählen SieSend Escape Sequence
aus und geben Sie dann ein[1~
Wiederholen Sie dies für die End
Taste mit [~4
der Escape-Tastenfolge.
Wenn Sie zsh verwenden, tun Sie dies auch:
1) Fügen Sie Folgendes in Ihre
~/.zshrc
Datei einbindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line
2) Führen Sie
source ~/.zshrc
alle offenen Terminals ein.
bindkey "^[[~4" end-of-line
. Beachten Sie die Position der 4.^[[4~
Echo ausgegeben, 4
während ^[[~4
der Cursor an das Ende der Zeile bewegt wird.^[[4~
. Welche Art von Tastatur und Zeichencodierung verwenden Sie, vielleicht macht das einen Unterschied?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.
/Library/KeyBindings/DefaultKeyBinding.dict (apply to all users)
oder
~/Library/KeyBindings/DefaultKeyBinding.dict (apply to yourself)
{
"\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
}
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!
Kaleb
Barrypflücker
Eman