Esegui un comando in modalità zsh vim


10

In zshin vim mode, scrivo qualcosa

foo foo bar bar

Quindi premo Escper andare in modalità normale e digitare :

foo foo bar bar
execute: _

Quindi, presumo di poterlo fare, voglio cercare e sostituire barconbaz

foo foo bar bar
execute: s/bar/baz/g_

Quindi provo a premere Invio, ma non funziona. Posso solo tornare indietro executeusando Ctrl+ c.

Come posso eseguire il comando?

Ho provato questo con il mio normale .zshrce senza .zshrcaffatto.

Risposte:


10

La vicmdmodalità , nonostante il nome, è per i comandi in modalità normale di Vi. Il prompt avviato da :non è per i comandi ex-mode di Vi, ma per l'esecuzione dei comandi ZLE (Zsh's line editor) :

$ echo foo
execute: e_
edit-command-line          emacs-forward-word         end-of-history             end-of-line-hist           exchange-point-and-mark    execute-named-cmd          expand-history             expand-or-complete-prefix
emacs-backward-word        end-of-buffer-or-history   end-of-line                end-of-list                execute-last-named-cmd     expand-cmd-path            expand-or-complete         expand-word

La pressione Enterfunzionerà quando è stato inserito un prefisso univoco (ad esempio, si supponga di digitare ed, che corrisponde edit-command-line, quindi Enterfunzionerà). Puoi premere Tabper vedere i comandi corrispondenti.


Grazie. Un motivo per usare bashquindi invece di zsh.
pfnuesel,

@pfnuesel è? Bash supporta l'utilizzo dei comandi ex di Vi?
muru,

1
Digitando v, puoi inserire vime fare qualunque cosa tu possa fare vim.
pfnuesel,

3
@pfnuesel Oh, quello. Zsh lo ha. Non è abilitato per impostazione predefinita. Vedi unix.stackexchange.com/a/6622/70524
muru,

@muru La tua risposta è un po 'fuorviante. Quella a cui ti riferisci come "modalità vicmd" è in effetti la commandmappa dei tasti - è quella "ex-like" che ti dà la execute:richiesta di inserire i comandi ZLE. La vicmdmappa dei tasti è per lavorare in modalità di comando in stile vi (m). Quando si utilizza zsh in modalità vi, è probabile che si cambi da una parte all'altra vicmde viinsnello stesso modo in cui si sposta avanti e indietro tra la modalità comando e inserimento in vi (m).
wjv,
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.