J'utilise les raccourcis clavier vi dans mon shell tcsh.
Maintenant, je ne sais pas dans quel mode vi je suis ( insert
mode ou command
mode), ce qui entraîne beaucoup de frustration.
Quelqu'un connaît-il un moyen d'afficher le mode vi actuel dans le shell? (en incluant dans l'invite ou quelque chose)
la source
J'ai parcouru la documentation et je dois dire que je n'ai trouvé aucun moyen de détecter et d'afficher le vi-mode actuel. J'espère que vous aurez une agréable surprise et que quelqu'un trouvera une solution, mais je ne vois certainement pas de moyen de faire ce que vous demandez.
Je pense qu'il y a un moyen de le faire, mais c'est une exagération massive pour une petite gêne, et je ne pense pas que c'est ce que vous aviez en tête lorsque vous avez posé cette question. Si cela est vrai, arrêtez de lire maintenant et profitez de votre vie.
OTOH, si c'est vraiment votre bête noire, et que cela vous rend fou, et que vous voulez vraiment absolument désespérer de toucher ce problème, voici mon idée de la façon de procéder:
En bref, Unix implémente les E / S du terminal en tant que flux d'E / S en duplex intégral entre le pilote de périphérique et le processus utilisateur, dans lequel des modules peuvent être insérés. Il est organisé comme une pile, vous pouvez donc superposer autant de flux que vous le souhaitez. La somme des flux injectés crée votre comportement d'E / S de terminal.
Lorsqu'un personnage est entré, le premier module doit l'inspecter et le transmettre (s'il le souhaite). Lorsque la réponse arrive dans la direction opposée, elle a à nouveau l'occasion de l'inspecter et de la transmettre. C'est ainsi qu'un Ctrl-C est traité à un niveau supérieur à une touche de caractère normale.
Vous pouvez créer un binaire implémentant un module de flux qui, lorsqu'il est appelé, s'exécute silencieusement au premier plan, inspectant et transmettant toutes les frappes, effectuant votre action préférée sur les frappes qui vous intéressent. À toutes fins utiles, il semblera que vous travaillez sur le shell. Oooh. Vous pouvez invoquer ce binaire sur la dernière (ou la première, ou n'importe quelle) ligne de votre .tcshrc et vous ne sauriez même pas qu'il est là.
Il y a une bonne introduction ici , mais je n'ai pas trouvé grand-chose sur ce sujet, probablement parce qu'il a dépassé son apogée.
la source
Cette page a un script assez détaillé qui définit ce que vous voulez (et plus) dans zsh . Peut-être pourrait-il être adapté pour fonctionner avec tcsh (je ne connais pas très bien ce shell).
la source
À toute personne ayant ce problème exact (comme moi): j'ai trouvé une solution à stackoverflow . Apparemment, il existe un support natif pour cela dans readline, vous pouvez donc simplement ajouter ce qui suit à votre
~/.inputrc
:Et pour personnaliser l'utilisation réelle des personnages:
la source
Édition en ligne de commande avec tcsh
Plus de notes sur la page de
tcsh
personnalisation déjà liée ci-dessus.la source
J'ai eu exactement le même problème et par accident j'ai trouvé la solution. Bien que ce fil soit ancien, je n'ai trouvé aucun autre site Web offrant une solution, donc je suppose que publier sur ce fil est correct.
Réinitialisez simplement les paramètres de votre programme terminal ou de votre shell. J'utilise actuellement PuTTY, et je viens de supprimer mes paramètres enregistrés pour ma connexion enregistrée et recréé une session enregistrée. A fonctionné comme un charme.
J'espère que cela t'aides!
la source
Veuillez voir ma réponse sur SO . Bash 4.4 / Readline 7.0 ajoutera la prise en charge de cette fonctionnalité, et dans l'intervalle, j'ai publié des versions corrigées de Bash 4.3 / Readline 6.3 sur github .
la source