解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法

由于要在ubuntu下进行ARM嵌入式开发,需要在vim中编写.S文件,希望vim想对c语言那样高亮显示,但是vim不默认对.S关键字等进行高亮显示,所以需要新建或者修改文件来使vim识别.S关键字。 注:具体的vim安装以及相应的插件安装请参照“在ubuntu12.04下安装vim,ctag和NerdCommenter以及如何人配置以便开发c/c++语言的方法”一文。   
    经过不懈的坚持,终于找到了解决办法,在找解决办法的道路上遇到了无数的黑暗与阴霾,在这里我只将阳光呈现给大家。以下步骤既有具体的操作,也有逻辑思考。
    1.vim之所以能够对c语言的关键字进行高亮显示,肯定在vim的安装文件中(或者ubuntu系统中)会有一个文件对c语言的关键字进行标注,标注哪些关键字是显示红色,或者绿色。
    2.按照1中的思考,我按照网上的信息查到了这个目录/usr/share/vim/vim73/syntax,这个目录下含有许多.vim文件,其中含有c.vim,cpp.vim,asm.vim,masm.vim,css.vim等等,经过自己思考和网上的信息推断这些文件就是vim对各种语言进行高亮显示的设置文件。为了验证这一推断,用vim c.vim命令打开c.vim,在c.vim文件寻找与keyword(关键字)有关的信息,发现如图1两行信息。在图1中,int,long,short,char void等等

解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法

                                                                图1
正是c语言的关键字,到这里看到解决问题的希望。
    3.经过查证,2中的c.vim,cpp.vim,asm.vim和masm.vim,css.vim分别是对c语言,cpp(c++)语言,asm语言(一种汇编指令),css(用来开发网页的语言)的高亮显示的设置文件,但是目录/usr/share/vim/vim73/syntax下没有s.vim或者S.vim两个文件,此时又陷入了绝望。
    4.asm和.s(或者.S)都是汇编指令,只是由不同的厂商开发,厂商们在开发类似产品时一般会相互借鉴。可不可以改造文件asm.vim或者文件masm.vim或者文件asm.vim和文件masm.vim来达到目的呢?
    5.带着4中的疑问查看了asm.vim,文件中只有一行与keyword有关,如图2。没有具体的asm关键字(比如MOV)信息,接着去查找TODO的意思,也没弄清楚。

解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法

                                                                图2

    6.接着想masm.vim是不是定义asm关键字的呢,然后就打开文件masm.vim文件看看。打开masm.vim
文件去寻找有关keyword的信息,发现MOV指令出现在如图3中的代码中(206行),因此判定masm.vim就是对asm指令关键字进行高亮显示的定义文件。vim带有对asm指令的高亮显示的设置文件,下面需要验证vim是否也像对c语言关键字高亮显示那样自动对asm指令的关键字进行高亮显示。

解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法

                                                                   图3
    7.为了验证vim是否自动高亮显示asm指令的关键字,用命令vim HelloWorld.asm新建文件HelloWorld.asm,新建后输入MOV DIV等指令,均不高亮显示,如图解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法所示。因此需要解决vim对asm指令关键字高亮显示的问题。
    8.经在网上查找信息,需要在/etc/vim目录下创建文件名为filetype.vim的文件,在filetype.vim文件里写入让vim自动识别后缀为.asm的文件并高亮显示asm指令关键字的配额信息。具体如图4所示。第二行中的*.asm表示文件后缀为.asm,masm表示文件内的指令为masm指令。下面来检验是否能够高亮显示masm指令的关键字。

解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法
图4
    9.在HelloWorld.asm输入MOV DIV,此时显示如 解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法所示,比较7中的图,发现颜色不一样了,这说明步骤8中的方法是有效的。
    10.由于.s(或者.S)和.asm一样,都是汇编指令文件,而且有些关键字还是一样的(仅从字符来看),所以我们可以在masm.vim中添加.s(或者.S)指令的关键字,然后再在8中的filetype.vim文件中添加相应让vim自动识别.s(或.S)文件的配置信息。
    11.此步骤是实现10中的想法。指令LDR是.s(或.S)中有而.asm指令集中没有的关键字,在HelloWorld.asm中写入LDR,如图所示 解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法,此时vim不识别指令LDR。
将filetype.vim文件该写如图5所示。
解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法
                                                                   图5
将在masm.vim中添加关键字LDR,结果图图6所示。

解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法
                                                                    图6
图6与图3的区别就是图6在206行最后多了指令LDR。
用vim HelloWorld.s,写入LDR,如图 解决在vim下高亮显示ARM汇编指令(.s和.S后缀)的办法,与11中的图比较,LDR的颜色变了,说明10中的想法是可行的。
    自此,就可以实现在vim中自动高亮显示.s(或.S)关键字的想法。

转载于:https://www.cnblogs.com/199008nan/p/3428423.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值