在使用vim创建新文件时,如何自动添加一些框架代码

The*_*uga 34 vim code-generation

使用vim创建新文件时,我想自动添加一些框架代码.

例如,在创建新的xml文件时,我想添加第一行:

  <?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)

或者在创建html文件时,我想添加:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title></title>
  </head>
  <body>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

ken*_*der 28

我的.vimrc里有这样的东西:

au BufNewFile *.xml 0r ~/.vim/xml.skel | let IndentStyle = "xml"
au BufNewFile *.html 0r ~/.vim/html.skel | let IndentStyle = "html"
Run Code Online (Sandbox Code Playgroud)

等等,无论你需要什么.


eri*_*hui 15

您可以将骨架/模板保存到文件中,例如〜/ vim/skeleton.xml

然后将以下内容添加到.vimrc中

augroup Xml
    au BufNewFile *.xml 0r ~/vim/skeleton.xml
augroup end
Run Code Online (Sandbox Code Playgroud)

  • @crison对0r的意思.0将插入定位到第0行,并且r指示vim读取插入位置处文件的内容. (2认同)

orf*_*ftz 7

对于迟到感到抱歉,但我觉得我这样做可能对某些人有用.它使用文件的文件类型,使其比传统方法更短,更动态.它仅在Vim 7.3上进行了测试.

if has("win32") || has ('win64')
    let $VIMHOME = $HOME."/vimfiles/"
else
    let $VIMHOME = $HOME."/.vim/"
endif

" add templates in templates/ using filetype as file name
au BufNewFile * :silent! exec ":0r ".$VIMHOME."templates/".&ft
Run Code Online (Sandbox Code Playgroud)


Luc*_*tte 5

如果您想让您的骨架适应上下文或用户选择,请查看vim.wikia上列出的模板扩展器插件