首页 > 解决方案 > 我可以轻松让 vim 语法高亮 CUDA PTX 文件吗?

问题描述

VIM (8.1) 通过 vim81/syntax/cuda.vim 至少在 Debian/Devuan 上支持 CUDA 文件。但是 - PTX 文件没有这样的突出显示。

我的一个想法是尝试从 Godbolt 的代码库中提取一些东西——因为它们确实突出了他们的 PTX 输出。但我找不到他们的代码库中神奇之处。

那么 - 除了滚动我自己的语法文件之外,还有一种简单的方法可以在 vim 中突出显示 PTX 文件吗?

标签: vimautomationcudasyntax-highlightingptx

解决方案


(基于@talonmies 的建议的初步答案。)

PTX 被官方描述为:

带有指令操作码和操作数的汇编语言风格语法

所以它应该与基于 PTX 语法突出显示的任何用于组装的东西没有太大区别。

现在,汇编语言在语法方面有两种流行的变体:AT&T 风格和 Intel 风格;PTX 是 AT&T 风格。这意味着您需要仔细检查您的基本语法是仅适用于 Intel、仅适用于 AT&T 还是两者兼而有之。在第一种情况下 - 寻找其他东西;在第二种情况下,您需要更多的适应,而在第三种情况下则需要更少。

专注于 vim,您会在其中找到一个程序集语法文件/usr/share/vim/vim81/syntax/asm.vim(确切的路径当然取决于您的安装和 vim 版本)。上面写着“GNU Assembler”,它的默认语法是 AT&T,所以希望就是这样。

您需要对其进行修改 - 尽管即使没有修改,它也可能已经可以很好地工作了。所以开始:

cd /usr/share/vim/vim81
cp syntax/asm.vim syntax/ptx.vim

然后使用sed syntax/ptx.vimcurrent_syntax值更改为 ptx。

最后,在 中filetype.vim,复制加载程序集语法文件的行。请注意,有一个复杂的加载函数需要探索和调整(或删除)。


推荐阅读