J'essaie de passer d'une utilisation prolongée de Tcsh à une exploration récente de Bash.
J'ai réussi à porter sur toutes mes fonctionnalités préférées, à l'exception de Ctrl + w qui traite les espaces et les barres obliques comme des limites de mot, très probablement un mot de suppression en arrière. Dans Bash, readline supprime jusqu'au premier espace, supprimant toutes les barres obliques entre les deux.
J'ai essayé de nombreuses combinaisons de \ Cw: backward-kill-word dans .inputrc et .bashrc en utilisant bind mais je n'arrive pas à le faire fonctionner comme je le souhaite.
Assez drôle, grâce à Putty de Windows au travail, je peux utiliser Alt + Backspace, qui, selon le manuel, est la liaison par défaut, pour produire le comportement exact que je veux. Mais dans Terminal.app sur mes Mac à la maison, cela ne fonctionne pas. Il en va de même pour tout serveur FreeBSD ou Linux auquel je suis connecté depuis Terminal.app.
Je me tourne donc vers le superutilisateur pour obtenir de l'aide.
cat
. Sur tous les Unix,stty
est utilisé pour contrôler divers paramètres tty, y compris ces touches spéciales. (Voici à quoi ressemblait la 7e édition d'UNIXstty
.)stty
le manuel de). En outre, bash était à l'origine destiné au système d'exploitation GNU et n'a été porté que plus tard sur d'autres Unix; il est beaucoup plus facile de maintenir les fonctions d'édition dans une seule bibliothèque que dans plusieurs noyaux très différents.stty
configuration pour plus de simplicité, mais elle peut être remplacée par les propres paramètres de readline (comme décrit dans la réponse de Matt Day).grawity a écrit que cela ne peut pas être contrôlé dans le
.inputrc
fichier, mais c'est incorrect.Si vous
set bind-tty-special-chars off
dans votre.inputrc
, vous pouvez alors personnaliser le comportement des caractères spéciaux du terminal.Par exemple:
la source
python
.Pour mémoire, la réponse telle qu'elle s'applique à iTerm2 est de définir Alt- Backspace(ou Opt ⌥- ⌫sur Mac) pour envoyer des codes hexadécimaux
0xb1
et0x7f
afin d'effectuer l'backward-kill-word
action qui traite les caractères non alphanumériques comme des délimiteurs.Pour faire la distinction, voici le comportement que je décris, dans lequel appuyer sur Opt ⌥- ⌫une fois change cela:
echo "/example/filepath/with_non-alpha.characters@blah:meh
pour ça:
echo "/example/filepath/with_non-alpha.characters@blah:
Et les pressions suivantes de Opt ⌥- ⌫:
echo "/example/filepath/with_non-alpha.characters@
echo "/example/filepath/with_non-alpha.
echo "/example/filepath/with_non-
echo "/example/filepath/with_
echo "/example/filepath/
Voici à quoi ressemble le paramètre dans iTerm2:
Donc, spécifique à Putty et Terminal, la réponse de grawity est excellente. Mais après avoir passé un temps embarrassant à chercher comment appliquer le paramètre dans iTerm2, ce message de superutilisateur semble apparaître le plus souvent, il semblait donc responsable de fournir les informations pertinentes car il s'applique à iTerm2 en tant que réponse jointe à cette question.
la source