Domanda

Sto cercando di automatizzare i file di intestazioni di commento. Sono bloccato cercando di capire come inserire il risultato del comando uuidgen nel mio header usando autocmd di vim.

All'interno l'intestazione, il testo segnaposto è presente, in questo modo:

#ifndef _UUID_
#define _UUID_

// Code goes here!

#endif // _UUID_

La linea autocmd a _UUID_ popolano in Vimrc è:

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

Il problema è in arrivo in meno di r! Uuidgen. Come si inserisce il risultato di una shell di comando esecuzione come testo nella linea autocmd? O in un comando vi sostituzione per quella materia?

È stato utile?

Soluzione

L'utilizzo del sistema (), e non dimenticate di chomp il risultato -> matchstr(system('uuidgen'), "[^\n\r]*")

NB: Per i modelli più complessi, è possibile utilizzare soluzioni come mu-template . Per esempio, in c-header.template , si sarebbe dovuto modificare il valore di s:guard alla chiamata a matchtr () + system ().

Altri suggerimenti

Il mio conseguente linea autocmd dopo il suggerimento di Luc era, per l'amor posteri:

autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top