bash vi raccourcis clavier: Puis-je mapper des clés? Mode d'affichage (insérer vs commande)?

2

Je suis un utilisateur vi (m) de longue date et suis récemment passé à l'utilisation de la liaison de clé vi dans bash. Je peux déjà dire que ce sera une amélioration, mais je voudrais personnaliser quelques éléments pour devenir vraiment compétent.

  1. J'utilise actuellement la cartographie et il est totalement retranchée derrière ce qui suit: map ii <esc>. Puis-je faire la même chose en ligne de commande? Cela peut sembler anodin, mais je suis tellement habitué à taper deux fois dessus que d'atteindre la touche d'échappement est douloureux.
  2. J'adorerais trouver un moyen d'indiquer dans quel mode je suis: insertion ou commande. Cela pourrait prendre la forme de changer le type / la couleur du curseur, de mettre une note dans l'invite, etc.

J'ai parcouru les pages de manuel à la recherche de bash et envisagé de créer un fichier .inputrc, mais rien n’a encore fonctionné. Je vois que vous pouvez mapper les clés, mais pouvez-vous le faire pour deux touches successives, comme je le fais?

J'ai vu des solutions suggérant qu'elles fonctionnent pour zsh. Je ne suis pas intéressé par le passage à zsh. Si ce n'est pas possible à Bash, je peux vivre avec.

JmZ
la source
2
Première question abordée ici , deuxième question abordée ici , mais c'est une réponse zsh . Je sais que la gestion des invites zsh / bash est différente.
pb2q
Voir aussi cette question
pb2q
Cool ... Merci, pb2q, ce premier lien est exactement ce dont j'avais besoin. Malheureusement, pour l'instant, il semble que ma deuxième demande ci-dessus n'est tout simplement pas possible.

Réponses:

0

Votre première demande est possible par la réponse SO liée dans le commentaire de pb2q sur votre message.

Votre seconde requête est maintenant possible si vous avez bash 4.3 et readline 6.3. Ajoutez simplement ceci à votre .inputrc:

set show-mode-in-prompt on

Pour moi, il ajoute un "+" à mon invite en mode insertion, qui devient un ":" en mode commande.

Source: cette réponse par eMPee584 sur StackOverflow.

Brian McCutchon
la source