34

When creating a new file with vim, I would like to automatically add some skeleton code.

For example, when creating a new xml file, I would like to add the first line:

  <?xml version="1.0"?>

Or when creating an html file, I would like to add:

<!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>
4

8 に答える 8

28

私は私の.vimrcでこのようなものを手に入れました:

au BufNewFile *.xml 0r ~/.vim/xml.skel | let IndentStyle = "xml"
au BufNewFile *.html 0r ~/.vim/html.skel | let IndentStyle = "html"

など、必要なものは何でも。

于 2008-10-02T14:40:34.167 に答える
16

~/vim/skeleton.xml などのファイルにスケルトン/テンプレートを保存できます。

次に、以下を .vimrc に追加します

augroup Xml
    au BufNewFile *.xml 0r ~/vim/skeleton.xml
augroup end
于 2008-10-02T14:46:13.200 に答える
8

遅れて申し訳ありませんが、私のやり方が一部の人にとって役立つかもしれないと感じています. ファイルのファイルタイプを使用するため、従来の方法よりも短く、より動的になります。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
于 2011-08-31T23:55:52.107 に答える
5

スケルトンをコンテキストやユーザーの選択に適応させたい場合は、vim.wikiaにリストされているテンプレート拡張プラグインを参照してください。

于 2008-10-02T15:00:22.463 に答える
1

Pythonスクリプトを使用した2つの例を次に示します。

.vimrcまたは.vimrcから供給された別のファイルに次のようなものを追加します。

augroup Xml
  au BufNewFile *.xml :python import vim
  au BufNewFile *.xml :python vim.current.buffer[0:0] = ['<?xml version="1.0"?>']
  au BufNewFile *.xml :python del vim
augroup END

fu s:InsertHtmlSkeleton()
  python import vim
  python vim.current.buffer[0:0] = ['<!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>"]
  python del vim
endfu

augroup Html
  au BufNewFile *.html call <SID>InsertHtmlSkeleton()
augroup END
于 2008-10-02T14:38:34.687 に答える
1

ファイルの読み取りまたは作成時にさまざまなフックを追加できます。に

:help event

そこにあるものを読んでください。あなたが欲しいのは

:help BufNewFile
于 2008-10-02T14:39:03.420 に答える
0

私はhtml用のプラグインを書きました:

vim スクリプトの場合: http://www.vim.org/scripts/script.php?script_id=4845

Github: https://github.com/linuscl/vim-htmltemplate

于 2015-05-03T09:59:15.707 に答える