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?


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
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.


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)

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.