iTerm 2: Comment définir des raccourcis clavier pour aller au début/à la fin de la ligne?
Je peux voir que Ctrl+gauche/droit saute au début/à la fin de la ligne. Comment changer Cmd+gauche/droite?
Afin d'obtenir Alt+gauche/droite fonctionne correctement pour le mot de saut à suivre cet article.
- J'ai décrit ici: github.com/nikoloza/articles/blob/master/devtools/...
- Si vous voulez que ces raccourcis fonctionnent dans VIM trop, voir cette réponse: stackoverflow.com/a/9611698/991068
Vous devez vous connecter pour publier un commentaire.
Ajouter dans iTerm2 le Profil suivant des Touches de Raccourci
Voici un visuel pour ceux qui en ont besoin
^[[1~
et la Fin est la séquence^[[4~
. Ce ne sera pas interférer avec tmux. Je ne, cependant, suggèrent de prendre avantage de tmux intégration dans iTerm.⌘← "SEND ESC SEQ" OH
pour la Maison et⌘→ "SEND ESC SEQ" OF
pour la Fin (ceux qui sont en majuscules 'o n'est pas de zéros). Cela simule en fait en appuyant sur les touches début et Fin, et en tant que telle va travailler dans bash, vim, etc.Pour sauter entre les mots et de début/fin de lignes en iTerm2 suivez ces étapes:
Déplacer le curseur d'un mot à gauche
0x1b 0x62
Déplacer le curseur d'un mot à droite
0x1b 0x66
Déplacer le curseur au début de la ligne
0x01
Déplacer le curseur à la fin de la ligne
0x05
Supprimer un mot
0x1b 0x08
Supprimer la ligne
0x15
Annuler
0x1f
N'oubliez pas de supprimer le précédent liaisons:
Says send Hex Codes: 0x1b 0x1b 0x5b 0x44
. Il serait bon à savoir dans le cas où les gens ne voulaient pas enlever cela.set -o emacs
Je vois qu'il y a beaucoup de bonnes réponses déjà, mais ce qui devrait fournir le plus proche du natif de OSX de fonctionnalités que possible, en plus de votre shell. J'ai vérifié que cela fonctionne dans ZSH, Bash, nœud, python -je, iex et de rir/pry séances (à l'aide de rb-readline gem pour readline, mais devrait fonctionner pour tous).
Ouvrir le iTerm préférences ⌘+, et accédez à la
Profiles
onglet (laKeys
onglet peut être utilisé, mais l'ajout de raccourci clavier de votre profil vous permet de enregistrez votre profil et le synchroniser plusieurs ordinateurs) etkeys
sous-onglet et entrez les informations suivantes:Supprimer tous les caractères à gauche du curseur
Supprimer tous les caractères à droite du curseur
Supprimer un mot à gauche du curseur
Supprimer un mot à droite du curseur
Déplacer le curseur à l'avant de la ligne
Déplacer le curseur à la fin de la ligne
Déplacer le curseur d'un mot à gauche
Déplacer le curseur d'un mot à droite
Annuler
Rétablir généralement pas lié à bash, zsh ou readline, de sorte que nous pouvons la fixer à un inutilisés hexadécimal qui on peut alors fixer dans zsh
Maintenant comment résoudre tous les qui ne fonctionnent pas
Pour zsh, vous pouvez configurer la liaison n'est pas encore fonctionnelle
⌘+←Supprimer et ⇧+⌘+Z/⌘+y en exécutant:
Je suis incapable de trouver une solution pour ajouter de la refaire en bash ou readline, donc si quelqu'un connais une solution pour ces services, s'il vous plaît commentaire ci-dessous et je vais essayer de les ajouter dans.
Pour ceux qui recherchent la table de recherche sur la façon de convertir des séquences de touches à l'hex, je trouve ce tableau très utile.
$
en face deecho
(supprimer?). Autre que cela, c'est parfait. Je vous remercie.bind -p | grep backward-word
pour zsh exécuterbindkey | grep backward-word
et laissez-moi savoir ce que la sortie est. Les deux zsh, bash, et doit à la fois se lierbackward-word
à"\eb"
ou"^[b"
(qui sont à la foisesc
+b
) par défaut.bindkey | grep "\^\[b"
et qui vous diront si quelque chose d'autre est d'écraser les fois qu'il a été défini. C' devrait seulement retour#=> "^[b" backward-word
. Si il est écrasé, vous aurez à trouver où son écrasement et de le supprimer. Si ce n'est pas possible, vous pouvez exécuterecho 'bindkey "^[b" backward-word' >> ~/.zshrc
il va l'ajouter à la dernière ligne de votre.zshrc
, puis redémarrez iTerm et cela devrait fonctionner"^[b" backward-word
. Et uniquement cela. Regarde donc comme je suis bon? Mais ne fonctionne toujours pas. J'ai un clavier français mise en page si ce qui compte.keys
dans l'onglet iTerm préférences pour voir si c'est aussi la cartographie⌥
+←
à quelque chose. Si donc l'enlever. Vous pouvez tester si votreb
fonctionne correctement en appuyant rapidement suresc
relâcher, puis en appuyant surb
. Qui doit sauter d'un mot vers la gauche. Alternativement, vous pouvez mapper⌥
+←
hex0x1b 0x42
ou0x1b 0x5b 0x31 0x3b 0x35 0x44
. J'ai vérifié que les deux de ceux qui travaillent pour moi. Je pense vraiment que vous avez⌥
+←
écrasement dans iTerm si, dans votreprofile
keys
onglet oukeys
onglet.0x1b 0x5b 0x31 0x3b 0x35 0x44
fonctionne pour moi.⌥+←Delete
de travail sur les répertoires la suppression de dossier par dossier et non pas l'ensemble du répertoire? Je suis en utilisant0x1b 0x08
(iTerm2 & zsh) Désolé pour necroing btw ♂️⌥+←Delete
à supprimer par chaque niveau de répertoire danspath/to/something
, puis0x1b 0x08
doit de travail. Vérifiez que lorsque vous tapezbindkey | grep "\^\[\^H"
vous devriez obtenir"^[^H" backward-kill-word
retourné. Si pas, idéalement, vous voulez reconfigurer^[^H
àbackward-kill-word
en l'ajoutant à votre.zshrc
avececho 'bindkey "^\[^H" backward-kill-word' >> ~/.zshrc
backward-kill-word
pourbindkey | grep "\^\[\^H"
et ont ajoutébindkey "^\[^H" backward-kill-word'
à mon.zshrc
fichier indépendamment,⌥+←Delete
supprime toujours l'ensemble des chemins. En regardant ma.zshrc
fichier que j'avaisautoload -U select-word-style select-word-style bash
configurés à l'intérieur, est-il de toute préoccupation à la question?zsh-syntax-highlighting
plugin avant d'utiliser autoload! Merci beaucoup pour votre tempsSuivre le tutoriel que vous avez énumérés ci-dessus pour la configuration de vos préférences clés dans iterm2.
OU
Dans iTerm 3.0.12, vous pouvez passer à
Natural Text Editing
préréglage:Avertissement Que c'est un preset, il peut remplacer les touches que vous avez appliqué avant. Il est donc préférable d'enregistrer les raccourcis clavier avant d'appliquer un preset.
Pour une référence rapide de quelqu'un qui veut aller à la fin de la ligne ou début de 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:
J'ai utilisé Travis répondre et j'ai créé un profil dynamique vous pouvez importer basé sur ses instructions.
GabLeRoux/iterm2-macos-dynamique-profil
Les Instructions sont dans le fichier lisez-moi et c'est beaucoup plus rapide pour importer ce qu'il consiste à ajouter manuellement tous les. J'ai fait de cette question une réponse par @gooli demande parce que cela a été caché dans un commentaire. Espérons que vous apprécierez ce
Juste pour aider quelqu'un qui est d'avoir le même problème, mais plus précisément en utilisant le shell Zsh avec iTerm 2. Il s'avère que Zsh ne pas lire
/etc/inputrc
correctement, et il ne parvient pas à comprendre toutes les raccourcis clavier vous mettre en place à travers les préférences!Pour résoudre ce problème, vous devez ajouter des raccourcis à votre
.zshrc
de fichiers, tels que:Note les barres obliques inverses dans l'exemple ci-dessus, avant le "e", l'article lié ne pas les montrer, afin de les ajouter dans votre
.zshrc
fichier lors de l'ajout de liaisons.La vieille mode emacs liaisons peuvent encore travailler dans iterm2 et os x terminal:
Préférences -> profil de> Clés (sous-onglet dans le profil)
Left/Right option <kbd>⌥</kbd> key acts as +Esc
(similaire dans os x terminal)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 elle est définie comme
meta
ces vieilles liaisons de travail alors que certains iterm2 liaisons indisponible.Comme Explique dans ici, vous pouvez le faire avec un simple suit:
Les seules choses qui fonctionnent pour passer au début et à la fin de la ligne sont
⌘← "SEND ESC SEQ" OH
- pour se déplacer au début de la ligne⌘→ "SEND ESC SEQ" OF
- pour aller à la fin de la lignebind -p
affichera une liste de lié échappé clés dans votre shell, qui peuvent aider à vous donner plus d'idées /termes de recherche.bind -p
ne fonctionne que dans Bourne shells (bash, sh) pour zsh, csh tcsh, utilisezbindkey
.expliqué dans https://aaronaddleman.com/articles/hexcodes-and-iterm/
vous pouvez utiliser
xxd -psd
pour obtenir la clé hexagonale de code.Pour moi, la combinaison suivante travaillé:
| Key Action Esc+ End result |
|-----------------------------------------------------|
| ⌘← Send Escape Sequence a Send ^[ a |
| ⌘→ Send Escape Sequence e Send ^[ e |