gpt4 book ai didi

bash - Vim 以不同的文件扩展名以编程方式保存

转载 作者:行者123 更新时间:2023-12-04 05:33:05 24 4
gpt4 key购买 nike

我正在用 Vim 编写纤薄的文件,我希望它们在保存时编译并保存为 html 文件。将此添加到我的 .vimrc 中,它会在当前目录中的文件中发生:
au BufWritePost *.slim silent !slimrb % > $(echo % | cut -d'.' -f1).html
它不适用于具有类似 ../file.slim 路径的文件因为 cut 命令将它变成./file.slim .

我需要使用 parameter expansions但是 % 字符是在 Vim 中执行外部命令时为当前文件路径保留的。

无论文件的目录如何,如何将slim文件编译并保存为html文件?

最佳答案

au BufWritePost *.slim :silent call system('slimrb '.shellescape(expand('%')).' > '.shellescape(expand('%:r').'.html'))

.在文件名不包含特殊字符的 gvim 中,这就像 silent !slimrb % > %:r.html 一样工作,但在终端 vim 中,它不会使屏幕空白( silent 不会阻止这种情况)并且在文件名包含除换行符之外的任何特殊字符时起作用。要处理换行符,您必须使用以下内容:
au BufWritePost *.slim :execute 'silent !slimrb' shellescape(@%, 1) '>' shellescape(expand('%:r').'.html', 1) | redraw!

或写自定义 shellescape功能。

关于bash - Vim 以不同的文件扩展名以编程方式保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com