Comment modifier la commande shell actuelle dans le VI

31

J'ai vu dans les blogs sur des machines Linux que vous pouvez modifier la commande shell bash actuelle dans le VI (ou tout ce que l'EDITEUR est défini) en appuyant sur ctrl-x, ctrl-e.

Cela ne semble pas fonctionner sur 10.8. Des idées sur la façon de modifier la commande bash actuelle dans l'éditeur par défaut?

Scott Walter
la source
Cela devrait fonctionner en 10.8 (au moins, c'est le cas pour moi). Avez-vous essayé de désactiver FCEDIT et EDITOR?
nohillside
La documentation pour C-xC-e est ici - que contient votre VISUALvariable?
glenn jackman
il ne s'agit pas de 10,8. Je suis sur 10,8 et cela fonctionne très bien avec moi. Je n'ai rien changé dans mon .bash_profile pour l'activer.
Vincent
1
Remarque: Cette question Apple.SE est fondamentalement la même que la question Super utilisateur "J'utilise Bash en" mode vi ". Quelle est la séquence de raccourcis clavier pour modifier la ligne de commande actuelle à l'aide d'un éditeur externe?"
inoubliable le
1
Je viens de réaliser que je faisais Ctrl + (x, e) (maintenir ctrl, appuyer sur x, appuyer sur e, relâcher le contrôle) - c'est pourquoi cela n'a pas fonctionné pour moi. Quand j'ai changé en appuyant sur deux touches claires Ctrl-x, relâchez Ctrl, Ctrl-e - alors tout a commencé à fonctionner parfaitement!
Dimitry K

Réponses:

32

Vous voulez set -o vi(ajoutez-le à votre ~/.bashrc). Ensuite, pour modifier la ligne actuelle, appuyez simplement sur Escpour entrer en mode commande.

Voir http://www.gnu.org/software/bash/manual/bashref.html#Readline-vi-Mode

Pour modifier la commande actuelle dans un éditeur plein écran, définissez votre VISUALvariable d'environnement sur vim(je suppose que vous le souhaitez vim), puis en mode commande dans le commentaire actuel, appuyez sur v.

glenn jackman
la source
5
appuyer sur le "v" était la sauce secrète qui me manquait. Merci.
Scott Walter
2
Est-il possible d'obtenir cette vcommande en mode emacs (non-vi)?
Alex Kahn du
10
Faites simplement Ctrl-X puis Ctrl-E.
albapa
7

Vous n'êtes edit-and-execute-commandpeut-être pas lié au vimode. Essayer:

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

Pour le rendre permanent, ajoutez cette ligne à votre ~/.inputrcfichier.

(via cette réponse ; crédit à @unforgettableid pour le lien)

Ragoût
la source