LoginSignup
1
1

More than 5 years have passed since last update.

Vimで折角tagsファイルを作成したドキュメントに色をつけたい!!

Last updated at Posted at 2018-02-10

始めに

  • tagsファイルって何じゃそりゃって方はこの記事を見てみてください、もしかしたらわかるかもしれません(保証はしない)
  • この記事はまとめ編ではありません。結果どうしろっていうの、って方は一番下の結果までジャンプしてください
  • この記事では、ハイライトやカラースキームを作成するわけではありません。ご了承下さい。お寿司もください

動機

前回の記事のようにしてtagジャンプできるようになったはいいものの、現状としては全部同じ色で表示されており、どれがtagジャンプできんのかわかりづらい。
なので、:helpで表示すると使われているようなカラーリングが使いたいなって思ったのがきっかけ。

まず始めに

  • ハイライトの自動化はfiletypeに応じて行われる。
  • filetypeを調べるには:set filetype?を実行すれば良い
  • 逆にfiletypeを設定するには:set filetype=<filetype名>を実行すれば良い

以上のことを踏まえて、以下のことをしてみた

  1. :helpで表示されるファイルのfiletypeを調べる
  2. 自分のドキュメントのfiletypeをそれに合わせてみる
  3. 思った通りのハイライトが適応される!(はず)

1. :helpで表示されるファイルのfiletypeを調べる

これは簡単な話で、:set filetype?を実行すれば良い。
結果:

:set filetype?
> filetype=help

--> 求めているハイライトのfiletypehelpだということがわかった

2. 自分のドキュメントのfiletypeを合わせてみる

これも単純作業、ドキュメントを開いて:set filetype=help

--> おお、きちんと表示された!!

filetypeを設定する前とした後の画像。見れなくてゴメンネ-_-

↑上段: 設定後
↓下段: 設定前

え、じゃあこれでよくね??
ところが

次なる課題: どうやってfiletypeを固定するのか

毎回毎回:set filetype ~とかやってるんじゃ効率悪いし何より配布とかもできない。
それは困る。
何とかして固定しなければならないわけで。

まず

  • 普段はfileの拡張子からfiletypeを判断をしている

ということから、とりあえず拡張子を.helpとかして見たが何も起こらず。
ちなみに:helpで表示されるヘルプページの拡張子は.txtであるがこれまた何も起こらず。
レッツgoogle!!

解決法: filetypeの固定 => modelineを使う!

が問題発生

結局、google先生に聞いてもよくわからなかったので素直に:help filetypeした。ええ、しましたとも。
そしたら*filetype*の欄の後ろの方に以下の記述があった。

If the file type is not detected automatically, or it finds the wrong type,
you can either set the 'filetype' option manually, or add a modeline to your
file.  Example, for an IDL file use the command: >
        :set filetype=idl

or add this |modeline| to the file:

/* vim: set filetype=idl : */ ~

どうやらmodefileとかいう機能を使うために、ファイルの中に/* vim: set filetype=<設定したいファイルタイプ> : */ ~と書けばいいようで。
今回は、設定したいfiletype=helpなのでidlhelpに書き換えてみる。
modelineが何なのかとか細けぇこた置いといて(=>help的なのはvimのmodelineオプションについて日本語で書いてみるをみてみてください)、説明の通りにやってみる。
どうやらファイルの最初or最後に書けばいいようで、とりあえずファイルの初めに置いてみる。
で、ファイルを一旦閉じて開き直す。

/* vim: set filetype=help : */ ~を書いて見たけど色つかなかったよっ

あれれ、色がついてない...
filetypeを確認するも、

:set filetype?
> filetype=text

とのことで変わっていない...

modelineを簡単に調べる

もうどうしようもないので:help modelineしまして。

The number of lines that are checked can be set with the 'modelines' option.                                                                                                                     
If 'modeline' is off or 'modelines' is 0 no lines are checked.

ふむ、どうやらmodelineがoffなのか、modelinesが0なのかが問題なようだ。
ちなみに最初modelinesについての記述に気がつかなくて1日ぐらい悩んだ

:set modeline?:set modelines?してそれぞれの値を見てみた。
するとどうだろう、modelineの方はonになっていたもののmodelinesが0になっていた。
つまり、modelineの機能自体はonになっていたものの、読み込む行数が0行だったので読み込まれていなかったということだ。わかりづれぇ

と、いうことで、:set modelines=5をしてみた。が、変わらない...
:set modelines=5をした後、一度開き直さなければいけないから、設定が変わってしまっているのかもしれない、ということで、
.vimrcにmodelines=5を書いてみた結果がこちら:

vimrcに設定したら今度はうまくいったやつだよっ

おお!!できた!!!

ということで、色がつきました、とさ。

(ちなみにこの後、/* vim: set filetype=help : */ ~はファイルの末尾に移動した。:helpで表示されるテキストも、modelineを末尾に書いてあることが多かったため。)


結果

  1. /* vim: set filetype=help : */ ~をファイルの先頭or末尾に置く
  2. :set modeline:set modelines=(0以外の数)vimreに書く
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1