合成 NASM 检查器

Syntastic NASM Checker

所以我一直在为大学 class 做一些工作,我使用 Vim 作为我的主要代码编辑器。我在为 NASM 编写程序集时遇到 Syntastic 问题,但 Syntastic 只想 运行 gcc 错误检查器(它告诉我所有代码都是错误的)。我尝试 运行 NASM 检查器明确地使用 SyntasticCheck nasm 但这似乎没有用。我还尝试在我的 .vimrc 中 let g:syntastic_asm_checkers = ['nasm'] 但这似乎没有做任何事情。我怎样才能让 运行 这里的 NASM 检查器使用 Syntastic?

请注意,我通过编写类似 mov eax, 的代码来测试它,以从 NASM.

中获取错误

如上面的评论所述,事实证明 nasm 仅适用于具有 nasm 文件扩展名的文件。将我的文件重命名为 <file>.nasm 后,我发现 vim 在 运行 set ft? 之后不会自动检测 nasm 文件类型,所以我必须修改我的.vimrc 支持扩展。

为了它的价值,我试着对这些文件发呆:

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

要禁用 .asm 语法并将其替换为 nasm 语法,但它不起作用。我可以让错误消失,但我无法让 snytax 着色或检查器自动工作。我恢复了我的更改并改为这样做:

:SyntasticCheck nasm
:set filetype=nasm
:SyntasticCheck nasm

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

您需要

  • 强制 .asm 与 nasm 之间的关联。只需将其添加到 .vimrc

    中的任何位置
    autocmd BufNewFile,BufRead *.asm set filetype=nasm
    
  • 使用 .nasm 扩展名。然后一切都会正常工作。

我在 ~/.vim/bundle/syntastic/syntax_checkers/nasm 中编辑了文件 nasm.vim 以用于 asm,并在 ~/.vim/bundle/syntastic/syntax_checkers/asm 中以相同的名称 nasm.vim 保存了编辑后的文件。这样做,您可以将 let g:syntastic_asm_checkers = ['nasm'] 放入您的 .vimrc 配置中,它工作得很好 :)

您可以在 https://srv2.mysnet.me/casm/tutorial/vim-configuration.

上找到编辑后的文件以及一些详细信息

好吧,我知道这个问题已经有几年了,但我希望它能对东部的其他人有所帮助。 (至少我自己在寻找答案,直到我发现调整文件可能会成功,这要归功于@netskink :D)