Vim Surround + Repeat, avvolge il mio testo con ^ M
Domanda
Sto usando Surround e ripetere i plugin di Vim per avvolgere righe di testo con tag HTML.
userò "yse
" e "ys $
", entrambi funzionano bene.
provo a ripetere il comando con "", e mostra
nel terminale, ma ogni volta che si preme Invio per eseguire il comando, sostituisce circondano cosa dovrebbe essere
e
con ^ M .I miei sguardi linea come ^ testoM qui ^ M
riconosco il carattere come una riga che finisce, ma non capisco il motivo per cui Surround non avvolgere la mia linea con il codice si mostra nel terminale (che è corretto), ma invece avvolge la mia linea con terminatori di linea DOS.
Sto usando gvim su Windows XP, se questo fa alcuna differenza.
Soluzione
In realtà è perché <p>
non è davvero lì quando si ripete il comando con .
Prova questo: prima di ripetere il comando con .
primo colpo o
per svuotare l'area della riga di comando di qualsiasi testo, poi ha colpito .
vedrai che in realtà è vuota, che è il motivo per cui il cursore si trova sul primo carattere.
Per ripetere l'involucro correttamente, dovrete o digitare <p>
ogni volta o registrare una rapida macro.
Macro: ys$<p>
Incolla che in vim, evidenziarlo, e digitare "py
Ora è possibile eseguire la macro con @p
Altri suggerimenti
documentazione del surround.vim
dice:
The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136.
Quindi, se si sta utilizzando yss
dovrebbe funzionare, ma a quanto pare le altre versioni di "ys
" non sono supportati. Suona come una buona caratteristica richiedono di inviare al proprietario repeat.vim
.