Problème de terminal avec Ctrl + Flèche et Maj + Flèches

9

J'exécute Mavericks sur un nouveau Macbook Pro. Lorsque j'utilise le Ctrlet les Shifttouches avec les touches fléchées, je reçois une sorte de codes clés comme sortie dans le terminal. Je suis à peu près sûr que ce problème est nouveau et qu'il ne s'est pas produit il y a quelques jours. Mais je ne suis pas sûr à 100%. Quoi qu'il en soit, voici ce qui se passe:

Si j'appuie sur Ctrl+ (flèche vers la gauche), ;5Dest émis dans le terminal. De même:

  • Ctrl+ (Flèche droite) sorties;5C
  • Shift+ (Flèche gauche) sorties;2D
  • Shift+ (Flèche droite) sorties;2C

Comme je le disais, je suis à peu près sûr qu'avant aujourd'hui, je pourrais utiliser ces raccourcis pour passer d'un mot à l'autre et sélectionner du texte. Quelqu'un a-t-il déjà vu cela avant? J'ai déjà regardé certaines des questions existantes sur les raccourcis clavier, mais je n'ai trouvé aucune référence à ce problème.

De plus, notez que j'ai désactivé le raccourci clavier permettant de passer d'un bureau à un autre à l'aide des Ctrltouches fléchées +.

Henrik Söderlund
la source
Vos touches de direction sont remappées quelque part \],-(l’équivalent ascii de l’hex 5C 5D 2C 2D).
l'L'l
Pourriez-vous élaborer? Je suis très nouveau sur OSX. Où pourrais-je chercher ces remappages?
Henrik Söderlund

Réponses:

8

La même chose se produit sur mes machines virtuelles 10.9 et 10.8. Les flèches de contrôle et les flèches de déplacement ne font rien par défaut dans bash. Où avez-vous même utilisé des touches de déplacement pour sélectionner du texte? Emacs ou Vim?

Si vous souhaitez utiliser control-left et control-right pour vous déplacer entre les mots en bash, ajoutez ces lignes à ~/.inputrc:

"\e[1;5C": forward-word
"\e[1;5D": backward-word

Pour utiliser les flèches de décalage dans Emacs, faites défiler la carte vers le haut \e[1;2A, vers le bas \e[1;2B, vers le bas , vers la droite \e[1;2Cet vers la gauche \e[1;2D. Si l' appui sur les résultats de décalage vers le haut dans un message comme <select> is undefined, essayez de régler TERMà xterm-vt220.

Lri
la source
J'imagine que j'ai peut-être eu tort d'utiliser les touches Maj pour sélectionner du texte. Je suis un développeur avec 13 ans d’expérience, mais c’est ma première participation à OSX. Très confus jusqu'à présent.
Henrik Söderlund
Compris la chose .inputrc. J'ai cherché partout le fichier jusqu'à ce que je réalise que je dois le créer moi-même. :) Je peux maintenant passer d'un mot à l'autre. Alors merci pour cela, je marque cela comme la réponse. Encore quelques questions pour que je sois clair à 100%: 1: je suis maintenant passé à iTerm2. Existe-t-il un moyen d'utiliser .inputrc ou autre pour obtenir Maj + Gauche et Maj + Droite pour sélectionner du texte dans iTerm2? 2: Vous avez mentionné Emacs et Vim. Ne sont-ils pas juste des éditeurs de texte? Comment pourrais-je les utiliser comme terminal?
Henrik Söderlund
Je ne connais aucun moyen de faire en sorte que shift-left et shift-right modifient la sélection dans iTerm 2. Je pensais que vous les auriez peut-être utilisés uniquement dans Emacs.
Lri
Bien. Je vais devoir m'en passer pour l'instant. Merci!
Henrik Söderlund
1
Cela ne fonctionne pas sur macos Sierra, Maj + Flèche Droite ou Maj + Flèche Gauche ne fait rien.
Alessandro C
2

Ctrl + Gauche / Droite sont présents dans Terminal (macOS 10.12) par défaut (Préférences → Profils → Clavier). J'ai essayé d'ajouter Shift-Up / Down dans ~/.inputrcmais rien ne s'est passé.

~/.inputrc:

"\e[1;2A": shift-up
"\e[1;2B": shift-down

Au lieu de cela, j'ai ajouté Shift Up / Down par programme dans les Préférences Terminal. Le problème est que cela est stocké par profil , dont macOS en a une douzaine par défaut. Vous devez donc parcourir tous les profils (un nommé Oceanici) pour ajouter les clés de tous les profils disponibles. Je ne sais pas si plutilou si vous defaultsavez un peu de magie pour vous faciliter la tâche, ou si vous devez utiliser un analyseur syntaxique XML.

~/Library/Preferences/com.apple.Terminal.plist:

"Window Settings" = {
  Ocean = {
    keyMapBoundKeys = {
      "$F700" = "\033[1;2A";
      "$F701" = "\033[1;2B";
en avant
la source
-1

Une alternative:

Dans les préférences du terminal, sélectionnez Options avancées et désélectionnez l'option «Coller les nouvelles lignes en tant que retours chariot».

Ensuite, utilisez Sublime pour écrire des textes compliqués.

Rohit Sood
la source