Les touches Home, End, PageUp, PageDown saisissent toutes une ~
session bash au lieu de déplacer le curseur / la vue. Pourquoi cela se produit-il et quels paramètres dois-je modifier?
GNU bash, version 4.0.28(1)-release (x86_64--netbsd)
PuTTY v0.60
La question se lit à l'origine:
Dans PuTTY, pourquoi appuyer sur la touche "Home" du shell (bash) tape un "~"? Ou plutôt, comment faire bouger le curseur au début de la commande que j'ai tapée?
(Je pensais que la raison était que ~ est la maison répertoire, mais les réponses disent que c'est pas.)
Terminal -> Keyboard
"Les touches de fonction et le clavier".Cela se produit parce que le type de terminal de PuTTY n'est pas défini correctement ou parce que votre serveur n'a pas les définitions terminfo appropriées installées.
Sur les systèmes Debian, le paquet ncurses-term (version 5.7 + 20081213-1) comprend des fichiers de définition terminfo pour les types de terminaux putty , putty-256color et putty- vt100 . Si vous avez ce paquet installé, vous pouvez définir la "chaîne de type terminal" sur "putty" au lieu du "xterm" par défaut dans la configuration de session de Putty (Connection -> Data).
Stephen Irons mentionne également "linux" comme un autre type de terminal qui fonctionne; Je pense que cela est correct, mais je ne l’ai pas testé récemment.
Sur mes systèmes, cela permet à Home et End de fonctionner correctement, bien que PageUp / PageDown ne fait pas défiler la fenêtre de la console. (Ils fonctionnent correctement dans les applications ncurses telles que aptitude et Shift-PgUp / Shift-PgDn font défiler la fenêtre de la console.)
la source
TERM=putty
ouTERM=putty-256color
est le plus sage, bien que, malheureusement, pour le moment, cette dernière ne semble pas fonctionner correctement pour les couleurs 8-15 (qui sont supposées être les versions lumineuses de 0-7). Les autres "solutions" sont très susceptibles de se dégrader font parfois à leur indifférence flagrante des différences entre les terminaux impliqués.yum install ncurses-term
trié pour moi sur CentOS 7 avec du mastic sur la prochaine connexion, merci.putty
fonctionne mais casse la prise en charge de la souris analogue à xterm (par exemple pour Midnight Commander)Si vous souhaitez vérifier quel code est envoyé par PuTTY à votre terminal lorsque vous appuyez sur une touche ou sur une combinaison de touches, il vous suffit d'émettre un
Ctrl+V
, puis d'appuyer sur la touche souhaitée.Par exemple, sur ma boîte, une pression sur la touche Home génère la chaîne suivante sur mon terminal:
Cela signifie que PuTTY envoie le caractère d'échappement ^ [ suivi de la chaîne [1 ~ .
Vous pouvez créer un
~/.inputrc
fichier dans votre$HOME
dossier ou un/etc/inputrc
fichier en fonction de votre système. Ensuite, remplissez ce fichier avec les codes PuTTY et les actions Bash correspondantes que vous souhaitez déclencher par Bash.Remarque: remplacez tous les caractères ^ [ par la chaîne équivalente \ e
Dans mon exemple, je vais ajouter une ligne à mon accueil code clé et le début de ligne action (qui par défaut est lié à
Ctrl+A
Bash):Pour info, mon fichier inputrc a le contenu suivant:
De @Cimbali: plus de commandes pouvant être reliées (comme previous-history: déplacer vers le haut dans la liste d'historique) disponibles sur cette page de référence .
la source
TERM=linux
ouTERM=putty
briser le soutien de la souris xterm-like. Merci!CTRL + A vous emmène au début de la ligne
Voici une liste de raccourcis clavier Bash
la source
Ce qu’il envoie réellement
^[[1~
est une séquence d’échappement terminal composée de:Vous pouvez voir cela en appuyant sur Ctrl+ Vpuis sur Home.
Vous pourrez peut-être résoudre votre problème en modifiant le paramètre du clavier PuTTY pour les touches Home et End en rxvt (ce qui crée la séquence d'échappement
^[[H
ou en modifiant le $ TERM que vous utilisez (ou en le modifiant~/.inputrc
).En passant, il n'y a pas de relation entre le tilde que vous obtenez lorsque vous appuyez sur Homeet le tilde qui représente le répertoire de base. Par exemple, dans ma configuration, les Page-Downproduits
^[[6~
qui imprimeraient également un tilde s’il n’était pas interprété correctement.la source
~
, et aucun des paramètres du clavier PuTTY ne les fait fonctionner. Ma bash est-elle gâchée ou est-ce "normal"?echo $TERM
?xterm
(Limite de 15 caractères)"\eOw": end-of-line
(il s’agit d’une lettre majuscule O) à votre~/.inputrc
fichier.Aucune de ces options n'a fonctionné pour moi. J'utilise un ancien système AIX. J'ai dû ajouter les alias suivants à mon .profile
la source
Je ne pouvais pas le faire fonctionner avec d'autres méthodes. J'ai cependant créé ce script AutoHotkey qui fonctionne, tant que votre shell est Bash:
Utilisez-le avec prudence , car toutes ces touches de raccourci ne fonctionnent pas dans d'autres programmes.
la source
screen
qui avec les paramètres par défaut casse Ctrl-A parce qu'il utilise comme un caractère d'évasion ....