Vim ex numero sapendo digitato prima
Domanda
Sto facendo una scorciatoia che pone un # nella parte anteriore di ogni riga, nel prossimo x linee. x è un tipo di numero che prima di entrare nel collegamento, come battitura 11dd
elimina i successivi undici linee.
Il comando è .,+10 s/^/#/g
. Qui il numero dieci in realtà dovrebbe essere tutto ciò che è stato digitato prima del collegamento. Come faccio a fare il cambiamento di scelta rapida in base al numero che è stato digitato prima?
Aggiunto dopo domanda ha risposto:
Così ora ho il seguente nella .vimrc:
nmap c1 :s/^/#/g<esc>``
nmap c0 :s/^#//g<esc>``
Il che mi permette di digitare 13ac
, aggiungere #
nella parte anteriore dei prossimi 13 linee, e 13dc
per eliminare qualsiasi #
nella parte anteriore dei prossimi 13 linee.
E 'meglio di =pod
e =cut
perché causa errori quando nidificate.
c1 = commento aggiuntivo,
C0 = Elimina commento.
# Viene utilizzato in Perl.
Soluzione
Nella schermata ex
, è possibile utilizzare il seguente comando:
s/^/#/count
dove count
è il numero di linee che si desidera modificare. Non si può mettere il numero prima del comando, perché questo consente di selezionare la linea di partenza (linea corrente se omesso). Così:
5s/^/#/3
aggiungerà un '#' prima di linee 5, 6 e 7.
Modifica
Nella schermata ex
è possibile utilizzare il comando map
per creare un collegamento a un comando del colon, che è quindi possibile utilizzare con un prefisso:
map CC :s/^/#/g
Ora si può usare 'XCC' in modalità vi
di anteporre '#' per le prossime righe x
.