J'ai ouvert un zsh
dans un ordinateur distant exécutant Fedora 13 (ouais, c'est vieux). Lorsque vous tapez backspacetout fonctionne bien, mais rien ne se passe lorsque je tape home( Ctrl+ Afait le travail comme prévu). Mais lors du lancement d'un sous-shell Python 2.7, mes backspaceimpressions ^?
au lieu de supprimer les derniers caractères et homeimpressions ^[OH
, et Ctrl+ Aimpressions ^A
.
Ce n'est pas le comportement que je vois quand je suis dans ma Linux Mint habituelle dans une machine locale, où tout fonctionne bien. Est-ce que quelqu'un sait comment cela se produit et que puis-je faire pour résoudre ce problème? Je vous remercie
PYTHONSTARTUP
variable d'environnement?echo $PYTHONSTARTUP
Affiche maintenant une ligne vide. Et myPATH
commence avec lebin
répertoire où se trouve python2.7.5. Est-il possible qu'il tente d'accéder aux configurations d'anciennes versions de Python? Chaque utilisateur y a installé son propre python.--enable-readline
comme option duconfigure
script.~/.inputrc
fichier.Réponses:
Comme @BrandonInvergo l'a souligné dans les commentaires, il s'agit de deux problèmes différents. Comme je ne connais pas le python, je ne me concentre que sur le
zsh
problème spécifique.Le shell Z utilise l' éditeur de ligne Z (zle) pour interagir avec l'utilisateur. Les raccourcis clavier sont configurés avec la fonction
bindkey
intégrée (voirman zshzle
les informations plus détaillées). Il existe différentes mappes clavier, par exemple lorsque vous tapez à l'invite, lemain
clavier est actif, si vous utilisezzed
(un éditeur de fichier simple mais souvent très pratique), le clavierzed
est actif, etc.Vous pouvez afficher les combinaisons de touches actuelles avec
bindkey -M [keymap]
, lamain
configuration de clé est la valeur par défaut. Dans la plupart des cas, vous pouvez simplement omettre le-M [keymap]
paramètre.Voyons maintenant votre problème spécifique:
CTRL+A
(représenté par^A
) saute au début de la ligne, vous avez donc probablement utilisébindkey -e
quelque part dans vos fichiers RC (soit dans vos fichiers personnels~/.zshrc
, mais il pourrait également être émis dans une configuration similaire à celle du système/etc/zshrc
) pour activer lesemacs
raccourcis clavier:Pour avoir le même comportement pour la
HOME
clé, vous devez identifier la chaîne produite (qui dépend de votre émulateur de terminal que vous utilisez). Une astuce simple consiste à lancercat
et à appuyer sur la touche souhaitée. Voici la sortie utilisantxterm
pour la toucheHOME
etEND
:Donc, texte long, message court - vous voulez mettre ces lignes dans votre
~/.zshrc
fichier (mais après labindkey -e
commande):Et s'il vous plaît n'oubliez pas de
source ~/.zshrc
... alors ces deux clés devraient fonctionner comme vous le souhaitez.la source
zsh
. En effet, mes chaînes pourhome
etend
sont^[OH
et^[OF
, alors ça marche. Et comme je suis plus habituévi
,bindkey -v
j'activer lesviins
raccourcis clavier à la place.