^ S dans le terminal ne soit pas envoyé à Vim


1

Je voudrais surcharger Ctrl + S et Cmd + S pour enregistrer un fichier si je modifie quelque chose dans Vim.

Après quelques critiques, je pense avoir découvert que, ^Sdans un terminal, le shell intercepte peut-être un message au processus ou que Vim fait peut-être quelque chose de spécial pour ne pas l'écouter. J'ai un script Perl qui met le terme en mode brut et qui lit parfaitement mes correspondances (l' ^Senvoie hexadécimal 0x13), mais rien ne se passe lorsque je suis en Ctrl+Vmode verbatim de Vim et que je le tape. Dans le shell zsh nu, le mode verbatim me montre que je suis pressant ^S. Cela semble réfuter la proposition selon laquelle un contrôle de flux de programme terminal est lié à cette clé, car je suis capable de faire en sorte que zsh la voie.

Comment puis-je faire en sorte que vim reconnaisse mes touches Ctrl + S?

Réponses:


2

^Sest le caractère ASCII XOFF. Avec XON ( ^Q), ils constituent les deux signaux de contrôle utilisés pour le contrôle de flux logiciel .

Ils ne sont pas interceptés par le shell, mais par le terminal, qui intercepte ^Spour signifier l'arrêt de la sortie du terminal et ^Qpour le reprendre.

Vous pouvez configurer votre terminal (utiliser stty -ixon -ixoff) pour les ignorer en désactivant le contrôle de flux logiciel, mais cela peut s'avérer inutile: il est déconseillé d'attribuer d'autres fonctions à XON et XOFF, car il se peut qu'il y ait autre chose dans la session de l'utilisateur ( terminal distant, un modem, un autre équipement RS-232) qui les interprète.


1

stty -ixon(et stty -ixoffpour faire bonne mesure) l’a fait pour Terminal.app, iTerm2.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.