2 votes

Liaison des majuscules à échapper dans z-shell

Je veux relier à nouveau la touche Caps Lock à la touche Échap dans z-shell pour mieux utiliser le mode vi dans l'éditeur de ligne z-shell. Je ne veux pas le relier pour l'ensemble du système. Est-ce possible?

(si ça a de l'importance, je suis sur debian)

1voto

JdeBP Points 25711

Non, car cela n'est pas fait par le shell Z.

Les événements bruts de pression/libération de touches proviennent du périphérique clavier. Ils sont traités par un émulateur de terminal — soit celui intégré dans le noyau du système d'exploitation, soit un émulateur graphique tel que xterm, gnome-terminal, lxterminal et ainsi de suite. L'émulateur de terminal traduit les événements clavier en séquences de caractères, et les envoie sur le côté "maître" d'un pseudo-terminal ou du côté (généralement caché) "maître" d'une console virtuelle. Ces données passent à travers la discipline de ligne du terminal, et seulement ensuite le shell Z voit le résultat, sous forme d'entrée lue du côté "esclave" du pseudo-terminal/console virtuelle.

Les touches "verrouillage" et "modificateur" ne sont pas gérées dans la discipline de ligne. Pensez aux jours des terminaux réels (plutôt que des terminaux "pseudo" et "virtuels") connectés par lignes série pour comprendre cela. Les caractères qui passent le long de la ligne série du terminal au système ont déjà eu les modificateurs appliqués. verr. maj. plus a a déjà été traduit en "A" par le terminal, et c'est ce qui est envoyé par le terminal et ce qui arrive à la discipline de ligne. (De même, contrôle et c ont déjà été traduits par le terminal en le caractère ASCII ETX.)

Donc pour ajuster ce que verr. maj. — ou en fait tout autre modificateur — fait, vous devez ajuster le terminal. Dans votre cas, vous devez ajuster n'importe quel émulateur de terminal que vous utilisez.

  • Avec les émulateurs de terminal basés sur le système X Window, vous pouvez jouer avec les mappings de clavier X, car il y a une couche X entre le périphérique clavier brut et le programme émulateur de terminal.
  • Avec les émulateurs de terminal intégrés aux systèmes d'exploitation, il y a généralement un système de mapping de clés de code vers caractère tout à fait différent, impliquant une couche de mapping clé de code vers caractère dans le noyau du système d'exploitation, avec laquelle vous pouvez jouer. Cela varie énormément d'un noyau à un autre (c'est-à-dire de Linux à BSD), et les outils que vous utilisez pour l'ajuster varient également beaucoup, même d'une distribution Linux à une autre (par exemple, de localectl à travers dpkg-reconfigure console-setup à invoke-rc.d console-screen.sh).

Mais comme cela change le comportement de votre terminal, cela affectera chaque programme recevant une entrée de ce terminal. Pour un émulateur de terminal GUI, cela affectera chaque programme que vous exécutez et qui prend son entrée de ce pseudo-terminal. Pour l'émulateur de terminal dans le noyau qui gère les consoles virtuelles, cela affectera chaque programme qui prend son entrée de cette console virtuelle.

Cela n'affectera pas l'ensemble du système, mais cela affectera bien plus que ce que vous voulez, qui est juste d'affecter le shell Z.

Lecture complémentaire

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X