566 votes

Remappez "Home" et "End" au début et à la fin de la ligne

La plupart de mon temps de calcul est passé sous Linux (avec un temps occasionnel sous Windows). Sur ces plateformes, le Home y End permettent de passer universellement au début ou à la fin de la ligne en cours.

Je m'habitue progressivement à utiliser le seul ordinateur Apple de ma vie, mais il est toujours frustrant que ces touches semblent être liées au début et à la fin du document et qu'il ne semble pas y avoir de touche pour les actions basées sur les lignes.

Ma question :

  1. Y a-t-il des combinaisons de touches existantes qui me manquent pour le début et la fin de la ligne ? (J'utilise principalement un Terminal, Chrome et LibreOffice)
  2. Existe-t-il un moyen de relier les fonctions de ces touches aux fonctions qui me sont familières ? Je suis prêt à renoncer aux versions basées sur des documents qui me semblent peu utiles.

Deux mises en garde également :

  1. Je ne suis pas le seul utilisateur du système. Il serait bon que mes paramètres d'utilisateur ne perturbent pas l'expérience des autres. Si cela n'est pas possible, je pense que j'ai probablement la préférence la plus forte !
  2. J'utilise plusieurs langues et je passe d'une disposition de clavier à l'autre. Toute solution devrait donc fonctionner même lorsque je passe d'une disposition de clavier à l'autre.

2 votes

Notez que si j'ai fini par trouver une solution et répondre à ma propre question, je suis ouvert à des solutions plus faciles ou plus polyvalentes. De plus, le processus de découverte n'est pas clair. Par exemple, où trouver les codes des touches et les noms des actions si je voulais remapper plus de touches ? N'hésitez pas à ajouter des réponses si vous avez des connaissances pertinentes !

7 votes

Je déteste mon Mac pour cette raison précise. Tous les systèmes utilisent home and end sauf le mac.

2 votes

C'est mon plus gros problème depuis que j'utilise le Mac.

511voto

Fuzzy Purple Monkey Points 702

Les raccourcis par défaut pour aller au début ou à la fin d'une ligne (enveloppée) sont les suivants y . y o A y E se déplacer au début ou à la fin des lignes (ou des paragraphes) non enveloppés. y reculer/avancer par mots, et tous ces éléments sont compatibles avec le fait de maintenir Shift à sélectionner lors des mouvements correspondants.

Vous pourriez remapper le début et la fin en créant ~/Library/KeyBindings/ et sauvegarder une liste de propriétés comme ceci DefaultKeyBinding.dict :

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

La plupart des combinaisons de touches pour l'édition de texte dans OS X sont définies dans le fichier /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict .

L'application des changements nécessite la réouverture des applications. DefaultKeyBinding.dict est ignoré par certaines anciennes versions de Xcode (fonctionne avec la dernière version 6.3.1), Terminal, et de nombreuses applications multiplateformes.

Voir Système de texte Cocoa y mon site web pour plus d'informations sur les combinaisons de touches personnalisables.

Les combinaisons de touches du terminal peuvent être personnalisées dans Préférences > Profils > Paramètres > Clavier. \033OH se déplace au début d'une ligne et \033OF à la fin d'une ligne.

Dans Eclipse, les liaisons de touches doivent être modifiées dans Préférences > Général > Touches. Vous devez modifier les liaisons par défaut pour les commandes Début de la ligne y Fin de ligne (remplacer par et par ). Pour que la sélection fonctionne, modifiez également Sélectionner le début de la ligne y Sélectionner la fin de la ligne .

PS : Vous devrez peut-être se déconnecter et se reconnecter pour le ~/Library/KeyBindings/DefaultKeyBinding.dict pour prendre effet.

3 votes

Informations utiles sur les mappages de touches - je les ai utilisés avec le BetterTouchTool (commercial), cf. cette réponse .

5 votes

D'après mon expérience, cela ne fonctionne pas dans la plupart des applications. Il est préférable d'utiliser les Karabina-Elements.

8 votes

C'est génial car il fonctionne dans Terminal, iTerm2, Chrome, Sublime et Outlook. L'alternative (Karabina) est moins bonne car elle associe "Home" à Command+Flèche gauche, ce qui fait basculer Windows dans Terminal. Vous devez vous rappeler de redémarrer toutes les applications après avoir enregistré le fichier .dict.

155voto

fuzzbone Points 1549

Je suis actuellement sur Lion 10.7.4 et, pour une raison étrange, je modifie le fichier ~/Library/KeyBindings/DefaultKeyBinding.dict n'a pas fonctionné pour moi.

J'ai constaté que l'addon KeyRemap4MacBook System Preferences (qui s'appelle maintenant Éléments du mousqueton ) fonctionne très bien, et vous pouvez également remapper une variété de touches avec lui, sans avoir à éditer aucun fichier texte. Par exemple, vous pouvez modifier les touches page précédente / page suivante pour que le curseur suive également la page précédente / suivante.

Il suffit de télécharger l'addon et, dans le panneau "Préférences système", de naviguer jusqu'à l'adresse suivante For PC Users et vérifiez Use PC Style Home /End .

Note, j'ai choisi (Change Home to Command+Left) au lieu de (Change Home to Control+A) comme si je choisissais la première, et si la ligne était enveloppée, home m'amènerait au début de la ligne enveloppée, plusieurs lignes au-dessus, au lieu de m'amener au début de la ligne actuelle.

KeyRemap4MacBook

13 votes

Le mousqueton est génial et aussi source ouverte

2 votes

Avec la 10.10.5, les autres suggestions semblent ne pas fonctionner, mais Karabiner (le nouveau nom de KeyRemap4MacBook -- fonctionne sur tous les produits Mac) fonctionne bien, et ne nécessite pas de redémarrage pour que les changements prennent effet. Immensément utile pour ce novice du Mac ; j'espère que d'autres pourront en bénéficier également.

0 votes

Karabiner ne mappe que les périphériques connectés, donc cela ne fonctionnera pas si vous utilisez VNC, Splashtop, etc. Cependant, les réponses aux questions sur les KeyBindings fonctionnent pour Splashtop (que j'utilise actuellement) et je suppose qu'elles fonctionneraient également pour VNC.

57voto

Caleb Points 6203

Merci à cet article j'ai trouvé comment relier à nouveau les Home y End à des actions basées sur la ligne, sur une base par utilisateur, qui fonctionne dans toutes les dispositions de clavier.

Vous devez créer un fichier dictionnaire avec les codes clés et les nouvelles commandes à associer, mais assurez-vous d'abord que le dossier dans lequel il sera placé existe en ouvrant un terminal et en exécutant la commande :

$ mkdir -p ~/Library/KeyBindings

Ensuite, créez ou modifiez le fichier à ~/Library/KeyBindings/DefaultKeyBinding.dict . Si elle n'existait pas auparavant, ajoutez toute la section ci-dessous. S'il existe déjà, ajoutez simplement les quatre nouvelles lignes à l'intérieur du bloc.

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

Afin d'activer les paramètres, vous devrez vous déconnecter de votre utilisateur et vous reconnecter.

Notez que cela couvre à la fois l'action normale de déplacement du curseur et l'action de déplacement de la souris. Shift + Home / End pour sélectionner pendant le déplacement du curseur.

22voto

mamacdon Points 261

J'utilise OS X Sierra, et l'application ~/Library/KeyBindings/DefaultKeyBinding.dict La solution proposée par d'autres utilisateurs a partiellement fonctionné : certaines applications comme TextEdit ont maintenant le comportement souhaité, mais d'autres applications ne l'ont pas. Google Chrome et Slack sont deux de ces applications qui ne semblent pas respecter la règle du DefaultKeyBinding.dict fichier.

Pour réparer les applications restantes, j'ai utilisé BetterTouchTool (anciennement) / BetterTouchTool (actuel) pour créer des raccourcis clavier spécifiques à une application en liant Home y End aux raccourcis natifs d'OS X Ctrl+A y Ctrl+E . BetterTouchTool n'est pas gratuit, mais il y a une période d'essai de 45 jours.

Pour ce faire :

  1. Installer et lancer BetterTouchTool
  2. Allez dans l'onglet Gestes > Clavier.
  3. Sous "Sélectionner l'application", cliquez sur + et choisissez l'application que vous voulez réparer.
  4. Cliquez sur "Ajouter un nouveau raccourci", assignez le Home dans le champ "raccourci d'enregistrement", et réglez "Déclencher un autre raccourci clavier" sur Ctrl+A. Répétez l'opération pour End et Ctrl+E.
  5. Lorsque vous avez terminé, le panneau devrait ressembler à ceci : BetterTouchTool panel
  6. Dans les paramètres avancés de BetterTouchTool, autorisez-le à s'exécuter au démarrage.

Remarque : ne quittez pas l'application BetterTouchTool, sinon elle cessera d'intercepter les pressions sur les touches. Fermez simplement sa fenêtre et elle devrait continuer à travailler en arrière-plan.

0 votes

Merci - je viens de l'utiliser sur El Capitan car j'ai déjà payé pour BetterTouchTool, et cela fonctionne bien avec Chrome, Slack et d'autres applications.

0 votes

Pour sélectionner tout en sautant (par exemple dans Word Docs ou Onenote), il faut également associer shift-home à shift-command-flèche gauche (flèche de note, pas contrôle A) et de même pour end. Je l'ai trouvé ici communauté.folivora.ai/t/

0 votes

Enfin ! J'ai une solution pour cette cartographie manquante. Merci pour le tuyau.

11voto

Jason Waters Points 101

Je l'ai fait en utilisant Éléments du mousqueton .

Vous devez mettre à jour la section des règles de ~/.config/karabiner/karabiner.json avec le tableau JSON du code ci-dessous. En faisant cela, les touches de début et de fin de session fonctionnent de la même manière que sur PC/Windows.

{
  "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"
        }
      ]
    }
  ]
}

voir aussi : github gist

enter image description here

0 votes

Vous pouvez simplifier cela en utilisant "modifiers": { "optional": [ "any"] } pour éviter de dupliquer une règle pour la sélection (ce formatage dans le commentaire est horrible, copier coller dans l'éditeur pour lire correctement je s'ppose) { "description": "Home is Beginning of line", "type": "basic", "from": { "key_code": "home", "modifiers": { "optional": [ "any"] } }, "to": [{ "key_code": "left_arrow", "modifiers": [ "left_command" ] }] }

2 votes

Une règle permettant d'atteindre cet objectif peut également être importée du référentiel, en accédant à l'onglet Complex modifications et cliquez sur Import more rules from the internet qui ouvrira un navigateur à ke-complexe-modifications.pqrs.org chercher Home et attrape Home and End des résultats. Testé sur Big Sur.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X