3

動的テンプレートに関するvim-wikiを読みましたが、同様の単純な「テンプレート システム」が必要です。関数を作成しました:

function! Read_template(file)
    execute '0r /home/zsolt/.vim/skeletons/'.a:file
    %substitute#\[:EVAL:\]\(.\{-\}\)\[:END:\]#\=eval(submatch(1))#ge
    %substitute#\[:READ:\]\(.\{-\}\)\[:END:\]#??????#ge
endfunction

テンプレートからファイルをインクルードしたい。はEVALうまくいきますが、どうすればREAD関数を解決できますか? インクルードされたファイルを評価することは重要ではありません。

例:

main.tex:

\documentclass[a4paper]{article}
....

exam.tex:

% Created [:EVAL:]strftime('%Y. %B. %d.')[:END:]
[:READ:]/path/of/main/main.tex[:READ:]

私は実行し、それが含まれRead_template("exam.tex")ていることを望んでいます。exam.texmain.tex

これどうやってするの?

4

2 に答える 2

5

ファイルを読み取り、その内容を挿入する必要があります。使用できないため:read(行全体を読み取り、置換内から呼び出すことはできません)、次のように低レベルのreadfile()Vimscript 関数を使用する必要があります。

%substitute#\[:READ:\]\(.\{-\}\)\[:END:\]#\=join(readfile(submatch(1)),"\n")/#ge
于 2014-03-10T15:46:38.370 に答える