终于可以支持文件名使用空格了:
- Windows下,mdict-utils 中的参数要使用双引号。
- Linux下,mdict-utils 中的参数要将空格转义。
以下是修正后在Windows下的代码,已测试通过。
if s:autoMdxPack == 1
echomsg "正在生成 Mdx 文件..."
silent! exe '!mdict'
\. ' --title "'
\. substitute(s:mdxSourceFileName, ".txt$", ".info.title.html", "")
\. '" --description "'
\. substitute(s:mdxSourceFileName, ".txt$", ".info.description.html", "")
\. '" -a "' . s:mdxSourceFileName . '" "'
\. substitute(s:mdxSourceFileName, ".txt$", ".mdx", "") . '"'
echomsg "已输出 Mdx,请查阅: " . getcwd() . "\\"
\. substitute(s:mdxSourceFileName, ".txt$", ".mdx", "")
endif
if s:autoMddPack == 1
echomsg "正在生成 Mdd 文件..."
silent! exe '!mdict'
\. ' -a "' . s:imageFolder . '" "'
\. substitute(s:mdxSourceFileName, ".txt$", ".mdd", "") . '"'
echomsg "已输出 Mdd,请查阅: " . getcwd() . "\\"
\. substitute(s:mdxSourceFileName, ".txt$", ".mdd", "")
endif
Linux下的参数不用引号,但要将空格转义(以下转义代码仅供参考),请自行修订,未测试
" let s:mdxSourceFileName = substitute(s:mdxSourceFileName, "\\s", "\\\\ ", 'g')
详情请参见: 好像不支持带空格的文件名? · Issue #13 · liuyug/mdict-utils · GitHub