My Vim config include plug-in che provano a gestire il progetto corrente, creare tag, ecc . Questo è abbastanza utile per la mia programmazione quotidiana in Vim, ma è solo fastidioso quando uso Vim per alcune modifiche rapide, come:
- modifica un messaggio di commit git;
- modifica un comando shell quando Ctrl+xCtrl+escrivo zsh o bash;
- eccetera.
Neanche a me piace --noplugins
, dal momento che voglio ancora sfruttare alcuni plugin in modalità di modifica rapida, come surround, easy-motion e molti altri.
Quindi, voglio avere un po 'di "modalità luce" (o "modalità rapida"), in cui alcuni plug-in verranno bypassati, ma non tutti.
La mia prima idea era quella di avere un argomento speciale da riga di comando, che analizzerei in vimscript, ma una rapida ricerca su google mostra che attualmente è impossibile in vimscript (terribilmente triste, comunque).
La mia seconda idea è quella di impostare alcune variabili d'ambiente quando si esegue vim, in questo modo:
$ VIM_LIGHT_MODE=1 vim
Questo funziona in git:
$ git config --global core.editor 'VIM_LIGHT_MODE=1 vim'
Ma se lo faccio EDITOR='VIM_LIGHT_MODE=1 vim'
e digito Ctrl+xCtrl+ela shell, non funziona:
edit-command-line:13: command not found: VIM_LIGHT_MODE=1
Poi ho provato questo:, EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"
ma fallisce anche:
vim': -c: line 1: syntax error: unexpected end of file
(Ad essere sincero, questo sembra particolarmente strano, mi sembra di aver frainteso esattamente come $EDITOR
viene usato, e sarò felice se qualcuno spiegherà cosa sta succedendo qui)
Anche tutti gli altri esperimenti fallirono.
L'unico trucco che mi viene in mente è di impostare alcuni servername
, come:
$ vim --servername VIM_LIGHTWEIGHT_MODE
E poi controlla v:servername
vimscript, ma questo è un trucco totale : questo non è affatto il nome del server.
Quindi c'è un modo più pulito per ottenere ciò che voglio?
vim
come vim -u .vimrc-light
.
env
, il mio shell-fu è ancora troppo debole. Considera di scriverlo come una risposta, in modo che io possa accettarlo.
env
:EDITOR='env VIM_LIGHT_MODE=1 vim'
.