Uso Vim para escribir C ++, y tengo bastantes #include<>
declaraciones, comentarios, etc. que debo incluir en cada archivo nuevo que creo. he añadido
autocmd BufNewFile *.cpp r C:\(full file path of skeleton text file)
a mi vimrc, porque escuché que esto crea un búfer con el texto que necesito en él. ¿Cómo hago para agregar este texto a un nuevo archivo? ¿Hay una manera fácil de hacer esto desde el búfer, o hay otra manera fácil de hacerlo? También he escuchado un poco sobre los complementos de plantilla. ¿Hay alguna muy simple que pueda hacer esto por mí?
vimrc
buffers
autocmd
filetype-c++
electriccello
fuente
fuente
autocmd
y crear el archivo esqueleto?:r C:\(full file path of skeleton text file)
? tuviste algun error?:enew
no funcionará, pero:e newfile.cpp
debería funcionar sinewfile.cpp
aún no existiera (incluso si está vacío).:enew
no funcionará es porque está editando un nuevo búfer sin nombre y luego guardándolo como un archivo .cpp.BufNewFile
solo se activa si está editando un nuevo archivo con el nombre de archivo de destino.Respuestas:
El texto de esqueleto de un archivo existente se puede agregar a un nuevo archivo insertando la línea
en el vimrc. El
BufNewFile
evento no funciona si el nuevo archivo se crea en dos pasos usando:enew
entonces:sav filename
. En cambio, la creación de un nuevo archivo usando:e filename
activa elBufNewFile
comando automático del evento en el vimrc, agregando el contenido del archivo de texto esqueleto al archivo recién creado.fuente
:help template
..vimrc
congestionen, ¿hay alguna otra ubicación en la~/.vim/
jerarquía en la que pueda ubicarlo?De hecho, los complementos del expansor de plantillas lo ayudarán en esta tarea.
:read
es el paso 0 de los complementos del expansor de plantillas.Por ejemplo, mu-template intentará incluir foo.h desde foo.cpp si se detecta foo.h. También permitirá expandir encabezados con datos dinámicos dentro de ellos (fecha, autor, licencia / copyright, etc.).
fuente
Para configurar el esqueleto predeterminado para todos los tipos de archivo y personalizarlo para un proyecto específico:
Ponga esqueletos predeterminados debajo
~/.vim/skeleton
, por ejemplo:~/.vim/skeleton/vim
,~/.vim/skeleton/sh
.Ponga el esqueleto específico del proyecto debajo
balabala/project/.vim/skeleton
. Mientras~/.vim
aparezca antesbalabala/project/.vim
en:h rtp
,balabala/project/skeleton/
se utilizará como directorio de esqueleto.fuente