en vim, ¿cómo agregar / insertar texto con argdo?
Pregunta
Ahí está el ": a " comando, pero eso es de varias líneas, y argdo le pide el texto nuevamente para cada archivo.
Los documentos mencionan el comando global (g / pat / command) que usará una versión alternativa de ": a " que termina con una nueva línea en lugar de ". " en una línea (puede incluir nuevas líneas escapándolas con " \ "). Pero no pude hacer que esto funcione.
La única forma que he visto es tirar primero el texto a agregar a un registro con nombre, luego usar:
:argdo put x " where x is the register
Espero algo como
:argdo append myTextHere
Solución
No tengo claro dónde está intentando insertar el texto en el búfer. Si lo desea después de la línea actual:
:argdo exe 'normal osometext'
Insertar texto con saltos de línea:
:argdo exe "normal osometext\<CR>anewline"
Otros consejos
Para agregar texto después de la línea nr 10:
:argdo call append(10, "hello world")
Para agregar texto a la línea 10:
:argdo call setline(10, getline(10)."textappended")
Yanking un texto en vim lo pondrá en el búfer predeterminado, que es "
. Puede pegar ese búfer en modo de inserción, por ejemplo, escribiendo <C-R>"
. Entonces todo lo que necesitas es argdo put "