VimVim 发表于 2018-12-25 09:49:34

mdx源文件中如何添加注释行

本帖最后由 VimVim 于 2018-12-25 09:50 编辑

为了让Vim更好地编辑mdx源文件,我需要指定源文件为html格式,从而可以正确加亮语法,但我又不想将文件后缀名txt改为html,否则用mdxbuilder制作mdx时又得改回txt。

Vim可以通过在文件中指定文件类型,从而识别之,如:
/* vim: set filetype=html : */

但毕竟注释文件与源文件的规定有所不同,既不是词条也不是正文。
经测试:
1、若将注释行放在txt源文件最前面,mdxbuilder会将该注释行当做词条;
2、若将注释行放在txt源文件最后面,mdxbuilder会报错;

暂时解决方案有如下两个:
方案1、将Vim注释当做一个多余的词条,缺点是这并不是真正的词典词条,如:
/* vim: set filetype=html : */
</>
方案2、将Vim注释行前后包装为HTML注释,并嵌入某一个词条的正文,缺点是,这个注释与该词条没有任何关系,如
<!-- /* vim: set filetype=html : */ -->

不知道各位是否有更好的解决方案?或者MDX源文件有自己的注释语法?

VimVim 发表于 2018-12-25 10:09:29

若有人能够将Vim的HTML syntax文件转换为MDX源文件syntax文件,那就完美了

bbs 发表于 2018-12-25 11:47:02

我就一句话,mdxbuilder制作mdx时不需要改回txt。只能帮到这里。看你自己的选择。

henices 发表于 2018-12-25 12:00:31

本帖最后由 henices 于 2018-12-25 12:01 编辑

看了老半天,终于有点看懂了。楼主的主要问题有几个:

1. 如何 让 vim 浏览 txt 后缀文件时,使用 html 语法高亮问题

这个直接输入命令不就好了进入 normal 模式后 :set ft=html
为什么要写在 mdx 的 txt 里呢

2. mdx 的注释语法

不论是用那个软件,最终都是当成 html 解析的,所以正确的注释语法是 <!-- -->

3. 搞一个 mdx 的语法高亮文件

同上就是应该是用html 高亮啊, 唯一不同的是 </> 个人感觉影响不大


最后,如果 mdx 的 txt 文件很大的, 加载语法高亮简直就是一个灾难,
不信打开一个1G 的 mdx 的 txt 加载 html 语法高亮试试。

VimVim 发表于 2018-12-25 13:05:58

bbs 发表于 2018-12-25 11:47
我就一句话,mdxbuilder制作mdx时不需要改回txt。只能帮到这里。看你自己的选择。 ...

感谢各位的解答,我知道有很多变通解决方案,但总觉得不是最佳。

mdxbuilder的选择框里只能选择txt,除非我们不用选择框,而是直接写源文件地址。
更好的方案是,mdxbuilder的选择框里可以选择任意文件格式,而不限定txt。


VimVim 发表于 2018-12-25 13:12:37

henices 发表于 2018-12-25 12:00
看了老半天,终于有点看懂了。楼主的主要问题有几个:

1. 如何 让 vim 浏览 txt 后缀文件时,使用 html 语 ...

您的理解很准确!对于您提到的:

1、:set filetype=html确实可以,但每次打开都得来一次,感觉比较麻烦,毕竟修订源文件可能来来回回好多次。

2、采用HTML注释,只能加入到某个词条,而不是文件最开始或最后,总觉得不舒服(癌症,得改!)

3、搞一个mdx的语法高亮文件:这是我最希望的,但限于技术水平不知道怎么搞……

4、关于语法高亮带来的性能问题:对于大文件性能确实是一个问题,但我之所以需要识别格式,是为了能够使用Vim基于文件格式的其他插件功能,比如matchit的HTML标签配对等,这有助于借助vim的宏命令等实现一些自动化批量操作。


henices 发表于 2018-12-25 15:56:23

VimVim 发表于 2018-12-25 13:12
您的理解很准确!对于您提到的:

1、:set filetype=html确实可以,但每次打开都得来一次,感觉比较麻烦 ...

不难,我就写过, 给你参考一下

https://github.com/henices/vim-nbin/blob/master/syntax/nbin.vim

VimVim 发表于 2018-12-25 17:57:40

henices 发表于 2018-12-25 15:56
不难,我就写过, 给你参考一下

https://github.com/henices/vim-nbin/blob/master/syntax/nbin.vim ...

感谢!目前对我还是很有难度,继续学习学习!

spoony1971 发表于 2018-12-26 10:51:48

VimVim 发表于 2018-12-25 13:12
您的理解很准确!对于您提到的:

1、:set filetype=html确实可以,但每次打开都得来一次,感觉比较麻烦 ...

能处理超大文件语法高亮的只有vis了。

VimVim 发表于 2018-12-26 15:10:20

我最终的解决方案是在mdx源文件最前面添加如下三行:

<!-- mdx modeline for Vim-->
<!-- vim: set filetype=html : -->
</>
页: [1]
查看完整版本: mdx源文件中如何添加注释行