Pour clarifier: je ne demande pas comment changer le curseur lors de l'utilisation de vim dans un terminal . Je veux que le curseur change lors du basculement entre le mode d'entrée et le mode de commande dans le vi-mode de Bash:
set -o vi <CR> type some text <ESC> (the cursor changes shape/color)
i (cursor change back) etc...
J'ai trouvé un script qui permet de changer la couleur du curseur sur les changements de mode dans zsh , mais je ne veux pas changer de shell uniquement pour cette seule fonctionnalité.
Existe-t-il un moyen d'amener le curseur à changer de forme, comme dans gvim, (ou même juste la couleur) lors du basculement entre les modes de commande et d'insertion sur la ligne de commande Bash?
bash
vi
line-editor
joecan
la source
la source
Réponses:
ajoutez ces deux lignes à ~ / .inputrc :
la source
set show-mode-in-prompt on
en~/.inputrc
aussi pour faire ce travail.Copié à partir d'ici - Style vim d'édition en ligne de commande
Devrait être disponible en
bash
4.3 - voir le changelog -bash
4.3 est actuellement aurc
stade, vous devriez pouvoir obtenir des packages pour la plupart des distributions sans compiler à partir des sources, mais pas dans les référentiels principaux. Par exemple. Ubuntu (amd64) ici et Debian (dépôt expérimental) ici .la source
Je n'ai pas trouvé de vraie solution, mais cela pourrait peut-être vous aider (ou aider quelqu'un d'autre) à en trouver une meilleure.
Vous devez créer un script (par exemple kmtest.sh)
et après l'avoir ajouté à votre PS1, quelque chose comme:
mais comme je l'ai dit, ce n'est pas ce que vous voulez, car cela ne change la couleur du curseur qu'après un cr. Bonne chance
gb
la source
Il semble qu'il y ait un moyen de le faire en piratant la ligne de lecture. Peut-être pourrions-nous faire pression pour qu'elle soit intégrée?
Voici ma réponse sur SO https://stackoverflow.com/a/12201092/255961 que je mettrai à jour si j'obtiens plus d'informations.
la source
Bien que ce ne soit pas exactement ce que vous voulez (changer dynamiquement le curseur), bash 4.4 / readline 7.0 ajoutera le support pour changer dynamiquement l'invite . Vous pourrez spécifier des indicateurs de mode personnalisés pour les modes d'insertion / commande (c'est différent de l'
show-mode-in-prompt
option actuelle qui est codée en dur à utiliser+
et:
).Malheureusement, ces versions sont actuellement en version bêta et ne semblent pas encore avoir corrigé tous les bogues. Il leur manque également la possibilité de spécifier où, dans l'invite, vous souhaitez que l'indicateur de mode apparaisse.
Dans l'intervalle, j'ai publié des versions corrigées de bash 4.3 / readline 6.3 sur github avec cette fonctionnalité.
la source
J'ai posé la même question il y a quelque temps sur AskUbuntu lors de la transition de Gvim à Console Vim.
J'ai reçu une réponse, mais cela impliquait de basculer les paramètres du terminal gnome, et ces paramètres s'appliquaient sur tous les terminaux. Ainsi, il était possible que le curseur du terminal gnome soit parfois bloqué dans le mauvais état.
Je suis toujours intéressé à savoir si vous obtenez une solution satisfaisante, mais au fil du temps, je me suis ajusté au manque d'informations sur l'état du mode dans le curseur. Peut-être que j'appuie sur échapper plus souvent (par exemple,
esc
pour m'assurer que je suis en mode commande;esc i
pour m'assurer que je suis en mode insertion); je regarde peut-être l'état affiché en bas de l'écran; peut-être que je viens d'intérioriser le mode.la source