Eu uso o Vim para escrever C ++ e tenho algumas #include<>
instruções, comentários etc. que devo incluir em cada novo arquivo que eu criar. eu já adicionei
autocmd BufNewFile *.cpp r C:\(full file path of skeleton text file)
ao meu vimrc, porque ouvi dizer que isso cria um buffer com o texto que preciso nele. Como faço para adicionar este texto a um novo arquivo? Existe uma maneira fácil de fazer isso no buffer ou existe outra maneira fácil de fazer isso? Eu também ouvi um pouco sobre plugins de modelo. Existe uma muito simples que poderia fazer isso por mim?
vimrc
buffers
autocmd
filetype-c++
violoncelo
fonte
fonte
autocmd
e criar o arquivo esqueleto?:r C:\(full file path of skeleton text file)
? Você recebe algum erro?:enew
não vai funcionar, mas:e newfile.cpp
deve funcionar senewfile.cpp
ainda não existir (mesmo que vazio).:enew
não vai funcionar é porque você está editando um novo buffer, sem nome, e , em seguida, salvá-lo como um arquivo .cpp.BufNewFile
só é acionado se você estiver editando um novo arquivo com o nome do arquivo de destino.Respostas:
O esqueleto de um arquivo existente pode ser adicionado a um novo arquivo, inserindo a linha
no vimrc. O
BufNewFile
evento não funcionará se o novo arquivo for criado em duas etapas usando:enew
então:sav filename
. Em vez disso, criar um novo arquivo usando:e filename
aciona oBufNewFile
autocommand do evento no vimrc, adicionando o conteúdo do arquivo de texto do esqueleto ao arquivo recém-criado.fonte
:help template
..vimrc
fique congestionado, existe algum outro local na~/.vim/
hierarquia em que eu possa colocá-lo?De fato, os plugins do expansor de modelos o ajudarão nessa tarefa.
:read
é a etapa 0 dos plug-ins de expansão de modelo.Por exemplo, o mu-template tentará incluir foo.h de foo.cpp se foo.h for detectado. Também permitirá expandir cabeçalhos com dados dinâmicos dentro deles (data, autor, licença / copyright, etc.).
fonte
Para configurar o esqueleto padrão para todos os tipos de arquivos e personalizá-lo para um projeto específico:
Coloque os esqueletos padrão em
~/.vim/skeleton
, por exemplo:~/.vim/skeleton/vim
,~/.vim/skeleton/sh
.Coloque o esqueleto específico do projeto em
balabala/project/.vim/skeleton
. Desde que~/.vim
apareça antesbalabala/project/.vim
em:h rtp
,balabala/project/skeleton/
será usado como diretório de esqueleto.fonte