Vim in modalità Ex è utile quando:
- Hai bisogno di modificare (più) file in modo non interattivo (come parte dello script).
- La tua connessione è molto lenta o lo schermo non viene aggiornato dopo le tue azioni.
- Mappature e abbreviazioni sono disabilitate.
- Tasti comuni come Escapeo Controlnon funzionano correttamente.
Fondamentalmente viè la modalità visiva per excui Vim Ex Mode è solo emulazione di ex(eseguono ancora lo stesso codice), quindi è possibile arrivare alla modalità di comando exda vi e viceversa. Esistono in realtà due modalità: la modalità Ex ( vim -e) e la modalità Ex migliorata che consente comandi più avanzati rispetto alla modalità Ex compatibile ( vim -E). Vedi: Qual è la differenza tra la modalità Ex e la modalità Ex migliorata?
Ex è la radice di una famiglia di editori: edit, exe vi. Ex è un super-set di ed, con l'estensione più notevole è una funzione di modifica del display. ex (1)
La modifica dei file in modo non interattivo è l'uso più comune e le persone lo usano in modo simile in quanto sede awk, tuttavia sono più orientati al flusso - leggono solo il file in avanti dall'inizio alla fine (non sono progettati per funzionare con più righe ) mentre vimè orientato al buffer: puoi spostarti avanti e indietro nel file come preferisci, il che lo rende così potente.
Fondamentalmente:
sedè un S tream ED itor, non un editor di file.
Tuttavia, la gente sembra abusarne per aver provato a modificare i file e la verità è che non modifica i file. In secondo luogo, le sue opzioni come sul posto ( -i) sono estensioni di FreeBSD non standard e potrebbero non essere disponibili su altri sistemi operativi. Quindi, se si desidera evitare codice non portabile, sovraccarico I / O e effetti collaterali dannosi (come la distruzione di collegamenti simbolici), è necessario utilizzare exl'editor di comandi UNIX standard (insieme a ed) BashFAQ .
Altre cose che trovo utili in modalità Ex sono usarlo come un parco giochi (simile alla pythonconsole) in cui è possibile eseguire molti comandi di seguito, lavorare / eseguire il debug di espressioni regolari, controllare la configurazione di VIM, eseguire comandi esterni o lavorare con i registri, ecc. .
Per esempio:
let @d = '<td></td>'
let @r = '<tr>' . repeat(@d, 5) . '</tr>'
echo @r
let @t = '<table>' . repeat(@r, 5) . '</table>'
reg
che è più semplice in modalità Ex che in modalità normale (dove puoi vedere solo l'ultimo comando).
Usi pratici
Ho i seguenti alias nel mio .bash_aliases:
alias trim="ex +'bufdo!%s/\s\+$//e' -scxa"
alias retab="ex +'set ts=2' +'bufdo retab' -scxa"
Nota: l'utilizzo bufdonon è un exmetodo conforme a POSIX (come da manuale ), quindi è possibile prendere in considerazione l'utilizzo con find. La !viene utilizzato per forzare la commutazione dei buffer senza salvare (altrimenti avviso viene generato).
Il primo che sto usando per tagliare gli spazi finali in tutti i miei file sorgente, ad esempio:
trim **/*.php
Il secondo converte tutte le schede in spazi (ricorsivamente), ad esempio:
retab **/*.php
Per me usare retabè abbastanza, ma ci sono alcuni aspetti negativi descritti qui . Aggiungi extra -Vper una maggiore verbosità.
Si noti che gli esempi di cui sopra utilizzando zsh / bash4 globbing ( **), in modo da assicurarsi che la shell lo supporta ed è abilitato.
Per esempi più pratici (come l'analisi dei file html), controlla:
Ulteriori informazioni sulla modalità Ex su:
Qeq:sono abbastanza diversi. Ti riferisci solo aQgiusto?