... et ça me rend fou.
Fondamentalement (cela se produit au cours des deux derniers mois), je me connecte à quelques serveurs de Centos différents (une linode, un autre VPS et un hôte partagé auquel j'ai accès à Shell), en cours d'exécution 5.5, 5.7 et 6, de mon Mac Running OS X Lion, utilisant le terminal.
Essentiellement:
$ ssh [email protected]
[remote-Host] $ nano somefile.txt
Une fois que je commence à éditer le fichier, si j'utilise les touches fléchées pour déplacer le curseur ou commencer à supprimer, puis tapez à nouveau, le curseur saute un peu, et si je sauve le fichier et le rouvrir, il est évident que le curseur était , en fait, sautant partout sur une ligne sans raison apparente.
Je finis par avoir des choses comme "Ceci est un texte néoforme". Quand j'avais saisi (au Curseur-Crazy Editor) "Il s'agit d'une ligne de texte."
C'est un gros problème lorsqu'il s'agit de modifier des fichiers de configuration, car je dois souvent modifier une ligne, sauvegarder et fermer, puis rouvrir pour vous assurer que la ligne est correcte ... puis modifiez une autre ligne ... et ça devient assez gênant. .
J'ai trouvé Linode Lish Shell Vim et Nano Rendering Troubles: Les lignes ne figurent pas/des positions de curseur incorrectes , mais je ne sais pas si cela se rapporte beaucoup, car cela fait spécifiquement référence à Lish.
[Mise à jour : A l'AS de Mac OS X Mountain Lion 10.8, la borne prend en charge la séquence d'échappement du backtab, éliminant ce problème.]
La version (s?) De Nano sur ces serveurs envoie parfois une séquence de backtab (ESC [Z) lors du déplacement du curseur laissé par un caractère, mais le terminal ne prend pas en charge cette séquence, donc nano pense que le curseur a déplacé quand il a déplacé T et son idée de la position actuelle du curseur est hors de synchronisation avec le terminal.
Pour des raisons, je ne peux pas comprendre, Nano envoie un backtab lors du déplacement vers la gauche et le curseur est un caractère à droite d'un arrêt de tabulation. De même, IIRC, il envoie un onglet (Control-i) lors du déplacement vers la droite et du curseur est un caractère à gauche d'un arrêt de tabulation. Je ne sais pas pourquoi cela fait que cela autour de l'onglet s'arrête au lieu de toujours se déplacer à gauche/à droite en utilisant les mêmes séquences de caractères. La version de Nano expédié avec Mac OS X Lion 10.7 ne fait pas cela.
Nano ne fait que cela lorsque la TermInfo dit que la fonctionnalité cbt
est prise en charge. Le terminalfo par défaut pour le terminal est xterm-256color
, qui déclare cette capacité et la mappe à la séquence de backtab. Une solution de contournement consiste à définir la variable d'environnement TERM
à quelque chose qui ne déclare pas cette fonctionnalité. Vous pouvez le faire sur la machine locale avant d'appeler ssh
ou dans le fichier de démarrage shell de l'hôte distant. Le régler à xterm-color
fera une pincée, bien qu'elle ne soit pas recommandée, car elle désactive d'autres comportements importants (par exemple 256 couleurs, BCE, préservation de la content d'écran alternatif). (Une approche plus lourde est de personnaliser votre xterm-256color
(ou xterm
) fichier terminfo sur l'hôte distant pour supprimer cbt
.)
Personnalisation de l'hôte distant (une manière ou une autre) est recommandée, les personnalisations ne s'appliquent pas localement ni à d'autres hôtes distants, mais la solution de contournement la plus simple consiste à modifier un paramètre de préférence de terminal à utiliser xterm-color
à la place de xterm-256color
:
Terminal> Préférences> Paramètres> [Profil]> Avancé> Déclarez le terminal comme suit :
Je recommande de faire dupliquer un profil de paramètres existant, de le personnaliser et de l'utiliser uniquement lorsque vous vous connectez à ces hôtes distants.
J'avais ce même problème. J'ai trouvé ce fil qui recommandé, entre autres solutions, une variable d'environnement sur le serveur distant:
export TERM=xterm-color
Ajouter cela à ~/.bash_profile a résolu le problème pour moi. Cette solution est simple et offre uniquement à un utilisateur spécifique sur un hôte spécifique.
J'ai eu le même problème dans le programme MOBAXTERM. Cause du problème était -K Key que j'ai utilisé pour activer Numpad dans Nano lors de l'utilisation de mastic. Comme je l'ai découvert dans MOBAXTERM -K n'est pas nécessaire (NUMPAD fonctionne par défaut) et sans que les touches fléchées de celle-ci fonctionnent correctement et ne insère pas de déchets aléatoires.
Pour les utilisateurs de MOBAXTERM. Si vous n'utilisez pas -k et vivez toujours le problème. Assurez-vous que les lignes suivantes sont commentées dans votre fichier/etc/nanorc.
# Set Rebinddelete
# SET REBINDKEYPAD
OSX 10.7.4 avec CENTOS en cours d'exécution comme système d'exploitation invité
Au sein des préférences du terminal OSX, des paramètres, avancés
Declare terminal as:xterm-color
Strict VT-100 keypad behaviour - TICKED!
Pas plus de problèmes :)
Le problème probable est que, oui, votre machine locale et votre serveur sont sur des systèmes UNIX qui ont Nano, mais ces versions Nano pourraient être différentes.
export TERM=xterm-color