Syntastic NASM 检查程序

7
因为我在大学的汇编课上需要写代码,所以我使用 Vim 作为我的主要代码编辑器。但是我在使用 Syntastic 时遇到了问题,我写的是 NASM 的汇编代码,但 Syntastic 只想运行 gcc 错误检查程序(告诉我所有代码都是错误的)。我尝试使用 SyntasticCheck nasm 明确地运行 NASM 检查器,但似乎没有起作用。我还尝试在我的 .vimrc 中使用 let g:syntastic_asm_checkers = ['nasm'],但似乎也没有任何作用。我该如何让 Syntastic 在这里运行 NASM 检查器呢?
另外说明一下,我通过写一些像 mov eax, 这样的代码来测试 NASM 是否会报错。

:set ft? 会显示什么? - Jason Hu
2
你看过检查器列表了吗?nasm是用于文件类型nasm而不是asm的检查器。 - Sato Katsura
@HuStmpHrrr:当我输入你的命令时,Vim显示它没有检测到文件类型。我进行了更多的研究,显然这是一个已知的问题,Vim不能检测到.nasm文件类型,详见此处。我执行了set filetype=nasm后一切恢复正常。谢谢!@SatoKatsura:你说得对,nasm是用于检查nasm文件类型的检查器。由于某种原因我认为我仍然可以运行它。我需要进一步了解如何让vim识别nasm文件类型... - emanguy
4个回答

4

你需要做以下两者之一:

  • force the association between .asm with nasm. Just add this anywhere in your .vimrc

    autocmd BufNewFile,BufRead *.asm set filetype=nasm
    
  • use the .nasm extension. Then everything will just work.


3
请您能否在代码中加入解释说明为什么这段代码可以回答问题?仅有代码的回答是不被鼓励的,因为它们无法教授解决方案。 - Nathan Tuggy

0

我编辑了~/.vim/bundle/syntastic/syntax_checkers/nasm文件夹中的nasm.vim,使其适用于汇编语言,并将编辑后的文件以相同名称nasm.vim保存在~/.vim/bundle/syntastic/syntax_checkers/asm文件夹中。这样做后,你可以将let g:syntastic_asm_checkers = ['nasm']放入你的.vimrc配置文件中,就可以正常工作了 :)

你可以在https://srv2.mysnet.me/casm/tutorial/vim-configuration上找到已编辑的文件以及一些详细信息。

虽然这已经是几年前的问题,但我希望它能帮助其他人(至少我自己一直在寻找答案,直到我发现调整文件可能会起作用,感谢@netskink :D)。


-1
如上面的评论所提到的,原来 nasm 只适用于具有 nasm 文件扩展名的文件。将我的文件重命名为 <file>.nasm 后,我发现 vim 在运行 set ft? 后并不会自动检测 nasm 文件类型,因此我需要修改我的 .vimrc 文件以支持该扩展名。

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Jason Hu

-1

就我所知,我尝试着与这些文件一起折腾:

plugins/syntastic/registry.vim
syntax_checkers/nasm/nasm.vim
syntax_checkers/asm/gcc.vim

我尝试禁用.asm语法并将其替换为nasm语法,但没有成功。我可以让错误消失,但无法使语法着色或检查器自动工作。我撤销了更改,改为执行以下操作:

:SyntasticCheck nasm
:set filetype=nasm
:SyntasticCheck nasm

在第二个syntasticcheck命令之后,它将启用语法着色和nasm语法检查。不确定为什么需要两次通过。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接