in vim, come aggiungere / inserire testo con argdo?
Domanda
C'è il ": a " comando, ma è multilinea e argdo ti chiede di nuovo il testo per ogni file.
I documenti menzionano il comando globale (g / pat / command) che utilizzerà una versione alternativa di ": a " che termina con una nuova riga anziché con ". " su una riga (puoi includere le nuove righe sfuggendole con " \ "). Ma non sono riuscito a farlo funzionare.
L'unico modo che ho visto è prima di scrivere il testo da aggiungere in un registro con nome, quindi usare:
:argdo put x " where x is the register
Spero in qualcosa del genere
:argdo append myTextHere
Soluzione
Non sono chiaro dove stai cercando di inserire il testo nel buffer. Se lo vuoi dopo la riga corrente:
:argdo exe 'normal osometext'
Inserimento di testo con interruzioni di riga:
:argdo exe "normal osometext\<CR>anewline"
Altri suggerimenti
Per aggiungere testo dopo la riga nr 10:
:argdo call append(10, "hello world")
Per aggiungere testo alla riga 10:
:argdo call setline(10, getline(10)."textappended")
Il janking di un testo in vim lo metterà nel buffer predefinito, che è "
. È possibile incollare quel buffer in modalità inserimento, ad esempio digitando <C-R>"
. Quindi tutto ciò che serve è argdo put "