Pregunta

Estoy tratando de automatizar las cabeceras de los archivos de comentario. Estoy atascado tratando de averiguar cómo insertar el resultado del comando uuidgen en mi cabecera usando autocmd de vim.

Dentro de la cabecera, el texto del marcador está presente, como esto:

#ifndef _UUID_
#define _UUID_

// Code goes here!

#endif // _UUID_

La línea autocmd a _UUID_ poblar en .vimrc es:

autocmd bufnewfile *.h exe "1,$s/_UUID_/" . r!uuidgen ."/g"

El problema viene en menos de r! Uuidgen. ¿Cómo se inserta el resultado de una cáscara de orden de ejecución como texto en la línea autocmd? O en un comando vi sustitución para el caso?

¿Fue útil?

Solución

El uso del sistema (), y no se olvide de masticar el resultado -> matchstr(system('uuidgen'), "[^\n\r]*")

Nota: Para las plantillas más complejas, se podría utilizar soluciones como mu-plantilla . Por ejemplo, en c-header.template , que habría tenido que cambiar el valor de s:guard a la llamada a matchtr () + () del sistema.

Otros consejos

Mi línea autocmd resultante después de la sugerencia de Luc era, por el amor posteridad:

autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top