Trovo che se si inserisce un prefisso numerico prima di eseguire un comando ex, la convenzione che si applica è quella di impostare il comando per preparare un'operazione su un intervallo di linee. È spiegato nella documentazione,
UN NUMERO DI LINEE
Quando sai quante righe vuoi cambiare, puoi digitare il numero e poi ":". Ad esempio, quando si digita "5:", si otterrà:
:.,.+4Ora puoi digitare il comando che desideri utilizzare. Utilizzerà l'intervallo "." (riga corrente) fino a ". + 4" (quattro righe in basso). Quindi si estende su cinque righe.
Ora quello di cui mi occupo è una mia funzione personalizzata, questa:
function! MyAmazingEnhancedDot()
if v:hlsearch == 1
:normal! .n
else
:normal! .j
endif
endfun
Questo è solo un modo per semplificare le attività ripetitive che includono la ripetizione di un'operazione su un intervallo di righe o su una serie di corrispondenze di ricerca.
Questa funzione è associata a un tasto di scelta rapida. Come Alt+ .o altro.
Il mio obiettivo è quello di essere in grado di fare qualcosa di molto potente: dovrei essere in grado di digitare /varName<CR>ciwnew-var<ESC>n9<Alt+.>per raggiungere la ridenominazione di 10 istanze di varNamea new-var.
Quello che succede realmente se lo faccio è che non esegue la ridenominazione e che le 9 righe sono manipolate con la mia .operazione di modifica salvata dalla colonna 0.
Posso solo supporre che Vim è interpretare le mie battute in tal modo: :.,.+8 normal! .n.
Sul lato mezzo pieno di vetro, il :normal! .jcaso della rilegatura funziona davvero, perché il jmovimento che non ha alcun effetto non ha alcuna conseguenza in questa situazione. (Ho ancora bisogno jdi farlo funzionare in un caso d'uso interattivo con prefisso non numerico).
Quindi la mia domanda è: come posso ignorare il comportamento di espansione della linea che Vim applica al mio bind? Sarebbe fantastico se potessi leggere il prefisso numerico come argomento o qualcosa del genere.
nnoremap <M-.> :<C-u>call MyAmazingEnhancedDot(v:count1)<cr>e saltare ilcommand -count=1 EDot call MyAmazingEnhancedDot(<count>)?