0

.vimrcで次のエントリを機能させようとしています:

 autocmd FileType yuml set makeprg=yuml\ -i\ %\ -o\ %<\.pdf\ -f\ pdf\ &\ sleep\ 1\;\ evince\ %<.pdf\ &

これは機能せず、:makeと入力すると、yumlユーティリティのデフォルトオプションが使用されます。ただし、次のように入力すると:

set makeprg=yuml\ -i\ %\ -o\ %<\.pdf\ -f\ pdf\ &\ sleep\ 1\;\ evince\ %<.pdf\ &

vimで手動で、コマンドは機能します。

私はここで何が間違っているのですか?

ありがとう、

マーティン


編集:yumlファイルタイプを明示的に定義するのを忘れました。だから私がする必要があるのは、.vimrcファイルに次の行を追加することでした:

au BufRead,BufNewFile *.yuml set filetype=yuml
4

1 に答える 1

4

正確に何が間違っているのかわかりませんが、スクリプト化されたautocmdでは、エスケープの問題をスキップして:let代わりに使用します。

:autocmd FileType yuml let &makeprg = 'yuml -i % -o %<.pdf -f pdf & sleep 1; evince %<.pdf &'

また、ファイルタイプがで正しく設定されていることを確認してください:set ft?

于 2013-03-05T15:26:54.920 に答える