iTerm 2: Comment définir des raccourcis clavier pour passer au début / fin de ligne?

Je peux voir que Ctrl+de gauche/droit saute au début/à la fin de la ligne. Comment changer Cmd+de gauche/flèche droite?

Pour obtenir Alt+de gauche/flèche droite travailler correctement pour que le mot de saut à suivre cet article.

288
demandé sur Flip 2011-06-01 21:18:28

12 réponses

Ajouter dans iTerm2 les touches de raccourci de profil suivantes

FOR  ACTION         SEND
⌘←  "SEND HEX CODE"      0x01 
⌘→  "SEND HEX CODE"      0x05
⌥←  "SEND ESC SEQ"  b
⌥→  "SEND ESC SEQ"  f

Voici un visuel pour ceux qui en ont besoin

iTerm ajouter une clé visuelle

538
répondu Matthias 2017-08-02 14:48:01

Pour sauter entre les mots et le début / fin des lignes dans iTerm2, procédez comme suit:

  • iTerm2 -> Préférences ( + ,)
  • Ouvrez l'onglet "Clés"
  • ajoutez les touches de raccourci globales suivantes

Déplacer le curseur d'un mot à gauche

  • Combinaison De Clavier: +
  • Action: Envoyer Le Code Hexadécimal
  • Code: 0x1b 0x62

Déplacer le curseur d'un mot droit

  • Combinaison De Clavier: +
  • Action: Envoyer Le Code Hexadécimal
  • Code: 0x1b 0x66

Déplacer le curseur au début de la ligne

  • Combinaison De Clavier: +
  • Action: Envoyer Le Code Hexadécimal
  • Code: 0x01

Déplacer le curseur à la fin de la ligne

  • Combinaison De Clavier: +
  • Action: Envoyer Hex Code
  • Code: 0x05

Supprimer le mot

  • Combinaison De Clavier: + ←Supprimer
  • Action: Envoyer Le Code Hexadécimal
  • Code: 0x1b 0x08

Supprimer la ligne

  • Combinaison De Clavier: + ←Supprimer
  • Action: Envoyer Le Code Hexadécimal
  • Code: 0x15

Annuler

  • Combinaison De Clavier: + z
  • Action: Envoyer Le Code Hexadécimal
  • Code: 0x1f

N'oubliez pas de supprimer le précédent liaisons:

  • Ouvrez l'onglet "Profils"
  • Cliquez sur le sous-onglet "Clés"
  • Supprimer les mappages pour les combinaisons de touches + et +
272
répondu sqren 2017-05-31 05:14:42

Je vois qu'il y a déjà beaucoup de bonnes réponses, mais cela devrait fournir la fonctionnalité OSX la plus proche possible dans plus que votre shell. J'ai vérifié que cela fonctionne dans les sessions ZSH, Bash, node, python-i, iex et irb/pry (en utilisant RB-readline gem pour readline, mais devrait fonctionner pour tous).

Ouvrez les préférences iTerm +, et accédez à la Profiles onglet (la Keys onglet peut être utilisé, mais l'ajout de raccourci clavier de votre profil vous permet de enregistrer votre profil et synchronisez-le sur plusieurs ordinateurs) et keys sous-onglet et entrez ce qui suit:

Supprimer tous les caractères à gauche du curseur

+←Supprimer Envoyer Des Codes Hex:

0x15 Plus compatible, mais la fonctionnalité consiste parfois à supprimer toute la ligne plutôt que les caractères à gauche du curseur. Personnellement, je l'utilise, puis j'écrase mon bindkey zsh pour ^U pour supprimer uniquement les choses à gauche du curseur (voir ci-dessous).

ou

0x18 0x7f Moins compatible, ne fonctionne pas dans le nœud et ne fonctionnera pas dans zsh par défaut, voir ci-dessous pour corriger zsh (bash / irb/pry devrait être correct), effectue la fonctionnalité désirée quand cela fonctionne.

Supprimer tous les caractères à droite du curseur

+fn+←Supprimer ou +Supprimer→ Envoyer des Codes Hex: 0x0b

Supprimer un mot à gauche du curseur

+←Supprimer Envoyer Des Codes Hex:

0x1b 0x08 les pauses dans L'IEX D'Elixir, semble bien fonctionner partout ailleurs

ou

0x17 fonctionne partout, mais ne s'arrête pas aux pauses de mots normales dans IRB et va plutôt supprimer jusqu'à ce qu'il voit un espace littéral.

Supprimer un mot à droite du curseur

+fn←Supprimer ou +Supprimer→ Envoyer Des Codes Hex: 0x01b 0x64

Déplacer le curseur à l'avant de la ligne

+ Envoyer Des Codes Hex: 0x01

Déplacer le curseur à la fin de la ligne

+ Envoyer Des Codes Hex: 0x05

Déplacer le curseur d'un mot à gauche

+ Envoyer Des Codes Hex: 0x1b 0x62

bouge curseur un mot droit

+ Envoyer Des Codes Hex: 0x1b 0x66

Annuler

+z Envoyer des Codes Hex: 0x1f

refaire généralement pas lié dans bash, zsh ou readline, donc nous pouvons le définir à un hexcode inutilisé que nous pouvons ensuite corriger dans zsh

++Z ou +y Envoyer des Codes Hex: 0x18 0x1f

Maintenant comment réparer tout ce qui ne travail

Pour zsh, vous pouvez configurer la liaison pour le non encore fonctionnel +←Supprimer et ++Z/+y en exécutant:

# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc

# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc

# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc

# reload your .zshrc for changes to take effect
$ source ~/.zshrc

Je suis incapable de trouver une solution pour ajouter redo dans bash ou readline, donc si quelqu'un connaît une solution pour l'un ou l'autre, veuillez commenter ci-dessous et je vais essayer de les ajouter.

Pour tous ceux qui recherchent la table de recherche sur comment convertir des séquences de clés en hexadécimal, je trouve cette table très utile.

188
répondu Travis 2017-06-15 12:38:00

Suivez le tutoriel que vous avez énuméré ci-dessus pour configurer vos préférences de clé dans iterm2.

  1. Créer une nouvelle clé de raccourci
  2. Choisissez "envoyer une séquence d'échappement" comme action
  3. , Puis, à l'ensemble cmd-gauche, dans le texte ci-dessous qui:
    • Entrer [H pour ligne de départ
      OU
    • Entrer [F pour fin de ligne
42
répondu Jaime Bellmyer 2018-03-02 19:12:43

Dans iTerm 3.0.12, vous pouvez passer à Natural Text Editing préréglage:

entrez la description de l'image ici

ITerm → Préférences → Profils → Clés

Avertissement Comme il s'agit d'un préréglage, il peut remplacer les clés que vous avez liées auparavant. Il est donc préférable d'enregistrer vos raccourcis clavier actuels avant d'appliquer un préréglage.

27
répondu Nik Kov 2017-11-20 12:09:26

Pour une référence rapide de quiconque veut aller à la fin de la ligne ou au début de la ligne dans iTerm2, le lien ci-dessus http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word-in-iterm.html note que dans iTerm2:

  • Ctrl+Un, saute au début de la ligne, tandis que
  • Ctrl+E, sauts à la fin de la ligne.
11
répondu Ioannis Filippidis 2017-09-16 20:58:41

Juste pour aider quiconque a le même problème mais utilise spécifiquement le shell Zsh avec iTerm 2. Il s'avère que Zsh ne lit pas /etc/inputrc correctement , et ne comprend donc pas les liaisons de clés que vous avez configurées via les préférences!

Pour résoudre ce problème, vous devez ajouter des raccourcis à votre .zshrc fichier, par exemple:

# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line

Notez les barres obliques inverses dans l'exemple ci-dessus avant le "e", l'article lié ne les affiche pas, alors ajoutez-les dans votre fichier .zshrc lors de l'ajout contraignant.

7
répondu Nerdwood 2013-05-28 10:42:58

Les liaisons Emacs à l'ancienne peuvent toujours fonctionner dans iterm2 et OS X terminal:

Préférences - > profils - > clés (sous-onglet dans les profils)

  • définir Left/Right option <kbd>⌥</kbd> key acts as +Esc (similaire dans le terminal os x)

Cela devrait permettre alt-f et alt-b pour déplacer des mots par des mots. (Encore ctrl-un et ctrl-e toujours travailler comme d'habitude)

Si défini comme meta ces anciennes liaisons fonctionneront alors que certains iterm2 liaisons indisponibles.

3
répondu halfelf 2016-08-22 03:16:11

bind -p montrera une liste de clés échappées liées dans votre shell, qui pourrait vous aider à vous donner plus d'idées / termes de recherche.

1
répondu Jose Alban 2015-01-19 12:26:38

Comme expliqué dans ici , Vous pouvez le faire avec des étapes simples:

Par défaut, les sauts de mots (option + → ou←) et les suppressions de mots (option + retour arrière) ne fonctionnent pas. Pour les activer, allez dans "iTerm → Préférences → Profils → Touches → Charge Prédéfinie... → Édition De Texte Naturel → Boom! Tête explose"

1
répondu Islam.Ibrahim 2017-10-15 11:03:55

Expliqué dans https://aaronaddleman.com/articles/hexcodes-and-iterm/

Vous pouvez utiliser xxd -psd pour obtenir le code hexadécimal clé.

1
répondu Zitao Xiong 2017-12-08 08:50:04

Pour moi, la combinaison suivante a fonctionné:
| Key Action Esc+ End result | |-----------------------------------------------------| | Send Escape Sequence a Send ^[ a | | Send Escape Sequence e Send ^[ e |

0
répondu Halil Özgür 2014-08-22 15:22:59