解决在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对各种语言进行高亮显示的设置文件。为了验证这一推断,用vimc.vim命令打开c.vim,在c.vim文件寻找与keyword(关键字)有关的信息,发现如图1两行信息。在图1中,int,long,short,charvoid等等

解决在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指令的关键字,用命令vimHelloWorld.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后缀)的办法
                                   

猜你喜欢

转载自blog.csdn.net/luomuxiaoxiao98/article/details/24622371