J'utilise le mastic sur Win7 en tant que client, pour vous connecter à SSH sur un serveur Debian. Mais j'ai rencontré un étrange problème sur les comportements du clavier sur la console de mastic.
J'ai remarqué que c'est à propos de la configuration du clavier dans le mastic. Après la lecture le manuel de mastic , j'ai fait avec succès backspace
clé pour fonctionner, mais j'ai toujours des problèmes d'environ ESC
, flèches, home
et end
, et F1
-F12
clés.
Ici, je énumère leurs comportements ci-dessous. Il semble que l'intimement de ESC
est la cause fondamentale.
ESC
=> ^ [up
=> ^ [oadown
=> ^ [OBright
=> ^ [ocleft
=> ^ [odhome
=> ^ [[1 ~end
=> ^ [4 ~F1
=> ^ [[11 ~F12
=> ^ [[24 ~================================================
Ici, je vais montrer pourquoi je pense que l'ESC est une incidence sur:
Lorsque dans une console SSH de travail correctement, j'appuie esc
, il ne devrait rien montrer.
(before)
root@somemachine:
(after)
root@somemachine:
Mais dans cette console SSH malfonctionnelle, j'appuie esc
, il montre ^[
.
(before)
root@somemachine:
(after)
root@somemachine: ^[
J'ai couru od -C sur la console SSH et appuyé sur esc
, ils ont donné la même sortie.
(normal one)
root@opengg:~# od -c
^[
(malfunctioning one)
$ od -c
^[
Le problème est la valeur de la variable de l'environnement terme ne correspond pas aux caractéristiques de terminal configurées - spécifiquement les paramètres "Touches Home and End" et "Touches de fonctionnement et clavier".
Ceux-ci peuvent être difficiles à obtenir.
Taper infocmp -I
Pour voir ce que votre ordinateur attend.
$ infocmp -I
# Reconstructed via infocmp from file: /usr/share/terminfo/a/ansi
ansi|ansi/pc-term compatible with color,
…
rmul=\E[m, il1=\E[L, kbs=^H, kcbt=\E[Z, kcud1=\E[B,
khome=\E[H, kich1=\E[L, kcub1=\E[D, kcuf1=\E[C, kcuu1=\E[A,
…
khome=\E[H
signifie que le serveur prévoit de recevoir trois caractères ESC [ H
quand vous appuyez sur Home.
Vous pouvez regarder ce qui est attendu pour d'autres valeurs de terme
$ infocmp -I xterm
# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm
xterm|X11 terminal emulator,
…
is2=\E[!p\E[?3;4l\E[4l\E>, il1=\E[L, ka1=\EOw, ka3=\EOu,
kb2=\EOy, kbs=\177, kbeg=\EOE, kc1=\EOq, kc3=\EOs,
kdch1=\E[3~, kcud1=\EOB, kend=\E[4~, kent=\EOM, kf1=\EOP,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
kf9=\E[20~, khome=\E[1~, kich1=\E[2~, kcub1=\EOD,
kmous=\E[M, knp=\E[6~, kpp=\E[5~, kcuf1=\EOC, kcuu1=\EOA,
…
Ici, vous pouvez voir que si TERM
a été défini sur xterm
, ce serveur s'attendrait à recevoir ESC [ 1 ~
lorsque Home est pressé (khome
)
Si ce qui précède est trop cryptique, essayez infocmp -L
Vous pouvez aussi faire des choses comme tput khome | hexdump -C
Si vous connaissez les noms de capacité Terminfo pour les clés qui vous intéressent.
$ tput khome | hexdump -C
00000000 1b 5b 48 |.[H|
ou sans doute plus lisible
$ tput khome | hexdump -e '12/1 "%3_u" "\n"'
esc [ H
ou pour voir quel paramètre un autre terme pourrait signifier
$ TERM=xterm tput khome | hexdump -e '12/1 "%3_u" "\n"'
esc [ 1 ~
si la sortie est vide, le serveur pense que le type de terminal (terme) n'a pas cette touche.
Pour voir ce qui Home En réalité envoie, exécutez vi
, appuyez sur i (pour le mode insertion) Appuyez sur Ctrl+V puis appuyez Home et appuyer sur Esc pour quitter le mode insertion.
Ajustez la configuration du mastic (ou terme) jusqu'à ce que ce soit envoyé correspondant à ce que l'autre extrémité attendue.
Par exemple.
Faire comme spécifié dans https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/terminfo.html Ensuite, dans le mastic, la configuration, la connexion, les données, la chaîne de type bornes = Mastic et sauvegarder ça. Peut-être.
Dans mon expérience, c'est parce que Bash n'est pas en cours d'exécution, il suffit de courir / bin/bash pour profiter des couleurs, de l'histoire et plus encore. Et ces problèmes disparaissent d'ailleurs, rendant le clavier fonctionnant comme prévu.
Vous devrez peut-être exécuter cette commande à chaque fois que vous vous connectez ou changez d'utilisateur, mais ce n'est pas difficile à retenir.
Jusqu'à ce que vous trouviez une solution complète, essayez d'utiliser des touches de style VI au lieu des flèches.
[.____] H => GAUCHE
[.____] J => Down
etc.