148 votes

Est-il possible de mapper les touches de début et de fin de ligne lorsque l'on utilise le terminal ?

El Home y End d'un MacBook Pro peuvent être émulées avec les touches Fn + ou f Fn + . Ou lorsque certains paramètres sont modifiés, avec le Command au lieu de Fn .

Aucun d'entre eux ne fonctionne dans le Terminal.

J'ai souvent besoin d'aller au début ou à la fin de la ligne et j'aimerais aussi sauter en avant ou en arrière par mot.

Comment puis-je sauter sur une ligne dans le Terminal ?

171voto

rogerdpack Points 688

Pour répondre à la question de savoir comment obtenir le début ou la fin de la ligne, il semble que, par défaut, le Terminal lui attribue ces touches :

  • shift+home début de ligne, équivalent à la touche "home" dans les terminaux normaux
  • shift+end fin de ligne, équivalent à la touche "end" dans les terminaux normaux

Si vous voulez que le début et la fin fonctionnent de manière "normale" (et ne nécessitent pas la touche shift), allez dans [menu Terminal] Préférences, onglet Profils (ou paramètres sur certaines versions d'OS X), sous-onglet Clavier.

Ensuite, modifiez/ajoutez ces clés pour qu'elles soient les suivantes : "envoyer une chaîne de caractères au shell".

  • la maison : \033[H
  • fin : \033[F

Vous pouvez obtenir le \033 en appuyant sur le bouton s'échapper dans l'entrée de la boîte de dialogue d'édition, si vous devez l'ajouter.

Ensuite, la maison et la fin fonctionneront à nouveau normalement (ouf).

Notez également que "alt + " et "alt + " correspondent par défaut dans le terminal au mot gauche et au mot droit, une autre combinaison pratique à retenir.

Dans les versions ultérieures de Mac OS X, si l'écran du terminal se déplace vers le haut ou vers le bas lorsque vous appuyez sur la touche Accueil/Fin, il peut être nécessaire de régler la touche Accueil sur \033[1~ et la touche de fin pour \033[4~ pour obtenir les résultats que vous souhaitez (pas besoin d'équipe).

N'hésitez pas à modifier cette réponse pour ajouter des liaisons de touches plus utiles, car il s'agit d'un wiki communautaire.

30 votes

\033 [H et \033 [Le F pour le début et la fin n'a pas fonctionné pour moi, mais \001 y \005 a fait. Vous pouvez entrer ces codes dans la boîte de dialogue d'édition en appuyant sur ctrl-A et ctrl-E. J'utilise zsh, je ne suis pas sûr que cela fasse une différence.

0 votes

Shift + home / end a fait le travail

1 votes

J'ai essayé de comprendre cela pendant un certain temps, cela m'a sauvé !

104voto

Am1rr3zA Points 12743

Utilisez control + a pour HOME et control + e pour END dans Terminal.

Utilisez également esc + f pour passer au début de la suivant mot et esc + b pour passer au début de la actuel mot. (vous devez faire attention à current et next)

2 votes

Parfait ! Et si on sautait d'un mot à l'autre ? (ctrl-gauche et ctrl-droite dans Windows)

0 votes

@at01 J'ai mis à jour ma réponse.

0 votes

Un autre outil très pratique est Ctrl+l pour effacer l'écran.

52voto

Zac Points 89

On dirait que vous cherchez de l'aide pour utiliser readline et bash, voici une liste folle de trucs de clavier modifiés à partir de : http://www.math.utah.edu/docs/info/features_7.html#SEC45

Ctrla Déplacez-vous au début de la ligne.
Ctrle Allez à la fin de la ligne.
Escf Avancez d'un mot.
Escb Reculez d'un mot.
Ctrll Effacer l'écran, en réimprimant la ligne actuelle en haut.

Ctrlk Tue le texte depuis la position actuelle du curseur jusqu'à la fin de la ligne.
Escd Déplacement du curseur jusqu'à la fin du mot en cours, ou si entre deux mots, jusqu'à la fin du mot suivant.
EscDel Tue du curseur le début du mot précédent, ou si entre deux mots, au début du mot précédent.
Ctrlw Tue du curseur à l'espace blanc précédent. Ceci est différent de EscDelCtrla parce que les limites des mots diffèrent.

Ctrld Supprime le caractère situé sous le curseur.
Ctrl_ Annulez la dernière chose que vous avez faite. Vous pouvez revenir en arrière jusqu'à une ligne vide.

Et voici comment ramener le texte dans la ligne. L'extraction consiste à copier le texte le plus récemment tué depuis le tampon d'élimination.

Ctrly Ramène le dernier texte tué dans le tampon au niveau du curseur.
Escy Tournez l'anneau d'abattage, et tirez le nouveau haut. Vous ne pouvez le faire que si la commande précédente est Ctrly o Escy .

0 votes

C'est inestimable - merci - j'aurais aimé que cela soit disponible sous forme de fichier imprimable quelque part !

0 votes

Je réalise que ce n'est pas tout à fait "optimisé", mais ; Fichier -> Imprimer ?

0 votes

Wow, ils sont super gênants par rapport à term sous linux Y a-t-il un moyen de remapper ces bêtises ?

17voto

fuzquat Points 119

Cartographie home y end avec la fonctionnalité souhaitée résoudra facilement le problème.

De nombreuses réponses ont été postées, mais au cas où vous utiliseriez zsh vous pouvez définir home à :

\001

et mettre end à :

\005

en cliquant sur préférence - profil - clavier.

4 votes

J'ai essayé cela aussi mais cela casse Home et End dans vim :( Vous pouvez les mettre en correspondance avec ce que Alfredo Cardigliano a suggéré : Clé : Action : \033OH Clé : Action : \033OF

1 votes

Cela a parfaitement fonctionné pour moi ! Je n'utilise que Nano, donc pas de problème ici.

0 votes

Oui, cela fonctionne, mais ne résout pas le problème en général. Je suis passé de bash à zsh et j'ai utilisé FN-SHIFT-LEFT/RIGHT ceci a résolu mon problème : stackoverflow.com/questions/8638012/

12voto

Terry N Points 297

Vous pouvez déplacer un mot à la fois avec option + left y option + right .

Concernant l'utilisation home y end Les liaisons par défaut du terminal sont les suivantes :

  • shift + home → saut au début de la ligne
  • shift + end → saut en fin de ligne
  • home → défilement vers le haut du tampon de retour en arrière
  • end → défilement jusqu'au bas de la mémoire tampon de retour en arrière.

Dans de nombreuses autres applications terminales (sur de multiples plates-formes), ces paires modifiées et non modifiées sont inversées (c'est-à-dire nues). home y end sont utilisés pour sauter autour de la ligne courante et des versions modifiées (que ce soit par shift ou autre) sont utilisés pour naviguer dans le tampon de défilement vers l'arrière). Vous pouvez inverser les liaisons de Terminal pour qu'elles fonctionnent de cette manière si vous le souhaitez en procédant comme suit :

Accédez au menu Terminal → Préférences → onglet Paramètres/profil → sous-onglet Clavier.

Ensuite, modifiez les paires clé-action pour qu'elles soient les suivantes :

  • : Envoyer le texte : \033 [H
  • : Faire défiler vers le haut
  • : Envoyer le texte : \033 [F
  • : Faire défiler vers le bas

Note : \033 est saisi dans la zone de texte à envoyer de la boîte de dialogue Édition en appuyant sur la touche Échap.

Pendant que vous êtes là, vous pouvez aussi échanger les liens entre les fichiers modifiés et non modifiés. page up y page down pour que les choses restent cohérentes : appuyer sur une touche de navigation avec la touche shift représente une commande au terminal lui-même (pour naviguer dans le tampon de retour de défilement comme un document), tandis que l'appui sur une touche sans l'envoyer à ce qui est en cours d'exécution. sur il (par exemple bash , less , nano , screen etc.). Les paires clé-action pour cela sont :

  • : Envoyer le texte : \033 [5~
  • : Défilement de la page vers le haut
  • : Envoyer le texte : \033 [6~
  • : Faire défiler la page vers le bas

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