Come posso modificare il comando shell corrente in VI


31

Ho visto nei blog su macchine Linux che puoi modificare l'attuale comando bash shell in VI (o qualunque cosa sia impostato su EDITOR) premendo ctrl-x, ctrl-e.

Questo non sembra funzionare su 10.8. Qualche idea su come modificare l'attuale comando bash nell'editor predefinito?


Questo dovrebbe funzionare in 10.8 (almeno per me). Hai provato a disinserire FCEDIT ed EDITOR?
Nohillside

La documentazione per C-xC-e è qui : cosa c'è nella tua VISUALvariabile?
Glenn Jackman,

non è di circa 10,8. Sono al 10.8 e funziona bene con me. Non ho modificato nulla nel mio .bash_profile per abilitarlo.
Vincent,


1
Mi sono appena reso conto che stavo facendo Ctrl + (x, e) (tenendo premuto Ctrl, premendo x, premendo e, rilasciando il controllo) - ecco perché non ha funzionato per me. Quando sono passato a premere due tratti chiari Ctrl-x, rilasciare Ctrl, Ctrl-e - allora tutto ha iniziato a funzionare perfettamente!
Dimitry K

Risposte:


32

Tu vuoi set -o vi(aggiungilo al tuo ~/.bashrc). Quindi, per modificare la riga corrente, basta Escpremere per accedere alla modalità comando.

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

Per modificare il comando corrente in un editor a schermo intero, imposta la VISUALvariabile di ambiente su vim(presumo tu voglia vim), quindi in modalità di comando nel commento corrente, premi v.


5
premendo la "v" era la salsa segreta che mi mancava. Grazie.
Scott Walter,

2
È possibile ottenere questo vcomando in modalità emacs (non-vi)?
Alex Kahn,

10
Basta fare Ctrl-X poi Ctrl-E.
albapa,

7

Il tuo edit-and-execute-commandpotrebbe non essere vincolato per la vimodalità. Provare:

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

Per renderlo permanente, aggiungi quella linea al tuo ~/.inputrcfile.

(tramite questa risposta ; merito a @unforgettableid per il link)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.