Vimでアセンブラハイライト

文化祭をはさんでとても忙しかったですが、ようやく落ち着きそうです。

OS自作入門の5日目がなかなか突破できないので、別の記事を挿みます(笑)







今回は、Vimアセンブラのソースにシンタックスハイライトをつけよう!という内容です。

VimはデフォルトではGASのソース(.sファイル)はこんな感じになります。



<Before>

b6e9a9c4.png



悪くはないんですが、なんだかほとんどが一色で統一されていて、

ハイライトの意義がほとんどないというか…。



<After>

e358e5bf.png



命令、数値、ラベル、定数などがちゃんと色分けされました。

これだと見やすくて作業効率も上がりそうです。



それでは、シンタックスハイライトのつけかたを説明していきます。

そもそも、Vimはファイルタイプによって別々の自動的にハイライトが適用されます。

ファイルタイプは拡張子や、ファイル先頭の#!/xxxなどで判別されます。



今回は、GASのソースにハイライトをつけたいので、拡張子が.sのファイルを

一つのファイルタイプとしていきます。



まずはファイルタイププラグインをonにします。

Vimの設定ファイル(~/.vimrc)に下の一行を加えます。



~/.vimrc



filetype plugin on





続いて、ファイルタイプを登録します。

~/.vim/filetype.vimというvimスクリプトでファイルタイプを定義します。

たぶん初期状態では存在しないので、自分で作ります。



~/.vim/filetype.vim



augroup filetypedetect

         au BufRead,BufNewFile *.s setfiletype gas

augroup END

これで"gas"というファイルタイプが作成されました。拡張子が.sならファイルタイプはgasです。

それに対応するハイライトファイル(というかまあ設定ファイル)を用意します。

場所は~/.vim/ftplugin/[ファイルタイプ].vimです。



今回は、vim.orgに用意されているものを利用します。こちら

これをダウンロードして、~/.vim/ftplugin/gas.vimにおいてください。







以上の手順を踏むと、はじめのようにソースがハイライトされると思います。

もし色が変わらない場合は、filetype.vimで余計な空白が挿入されていたり、

ファイル名が間違っていたりしていると思いますので、ご確認ください。







ちなみに、自作OSの進捗状況。



ss.png



なんか文字表示もできるようになってやったーとか見えるんですが、

やはりグローバル変数がなぜか使えないままです。

変数や関数のアドレスが表示できるのですごくありがたいのですが、

それでもわからず…



%dsの値が違うところを指しているのでは?と思っていろいろやったんですが、

どうやら%ds=1<<3で間違いはないようで。

この辺りの説明が自作本では少ないというか、少々誤魔化している感があります。



とりあえず、どうにかここで原因を究明したいと思います。