【问题标题】:Vim not automatically recognizing groff (manpage) filesVim 不能自动识别 groff (manpage) 文件
【发布时间】:2012-02-09 03:54:55
【问题描述】:

我有:

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Dec  1 2011 03:25:24)

使用 Debian 测试。

我正在玩我写的一个旧的联机帮助页,并注意到 vim(我最初使用 gedit 编写它但已切换到 vim)在加载时没有将其识别为 nroff/groff 文件类型或使用:

:filetype detect

它可以很好地突出语法,当然,使用:

:set filetype=groff

其他人有这种行为,如果有,找到解决办法吗?

顺便说一句,它可以正确识别 html、bash 和 python 脚本并设置正确的语法突出显示。似乎只是对没有 [FILENAME].1 类型后缀保存的 groff 文件犹豫不决。

欢呼, 纳尼

【问题讨论】:

  • 您的~/.vimrc 是否包含任何filetype 命令? (也请查看autocmd 命令——它可能不是该行的第一个单词。)
  • 是的,文件类型插件已设置。其他文件类型也能正常识别。
  • 我的~/.vimrc 也有filetype onfiletype indent onfiletype plugin on 并在使用例如测试时获取正确的文件类型。 /usr/share/man/man1/ls.1.gz。 (Vim 7.3,但 Ubuntu 已打包。)
  • 没错,我的也能识别 /usr/share/man/man1/ls.1.gz,但我敢打赌它是基于文件名的。在最初分别编写脚本、python 代码和手册页时,我通常不遵循 .sh、.py 或 .1 的约定。也许文件类型检测仅依赖于文件后缀而不是内容。它通过内容使用 bash 和 python 脚本来执行此操作,而不依赖于文件后缀。

标签: vim syntax file-type groff


【解决方案1】:

Vim 可以根据文件名和上下文检测文件类型。在这种情况下,vim 似乎只查看文件名。您可以编写自己的文件类型检测脚本来根据上下文找出这种类型的文件。 vim 的帮助有一些basic instructions 关于如何做到这一点。基本上你可以只写一个vim脚本来检测文件类型并将它放在$VIMRUNTIME/scripts.vim中。

【讨论】:

  • 这正是我的想法。
【解决方案2】:

添加您的~/.vimrc 文件:

au BufNewFile,BufRead *.groff set filetype=groff

或您用来定义 groff 文件的任何扩展名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多