パーソナルツール

Modeliner : 今の設定でモードラインを挿入、更新

作者: 小見 拓 最終変更 2012年01月10日 02時07分
— カテゴリ:

modeliner.vimスクリプトは、vimエディタのモードラインを出力するスクリプトです。 このスクリプトで定義される「:Modeliner」コマンドは、 モードラインが定義されていればそのモードラインを更新し、 なければモードラインの行を挿入します。 (Windows, Mac)

概要

Modeliner : Generates modeline according to the current settings.
http://www.vim.org/scripts/script.php?script_id=1477

modeliner.vimスクリプトは、vimエディタのモードラインを出力するスクリプトです。
このスクリプトで定義される「:Modeliner」コマンドは、
モードラインが定義されていればそのモードラインを更新し、 なければモードラインの行を挿入します。

インストール方法

スクリプト をダウンロードして、
そのスクリプトをpluginディレクトリにコピーして下さい。

ファイル URL
modeliner.vim http://www.vim.org/scripts/script.php?script_id=1477

スクリプトをインストールすると、
「:Modeliner」コマンドを使用できるようになります。

「:Modeliner」コマンドの使い方

モードラインを入れたい場所で、次のコマンドを実行してください。

:Modeliner

ファイルにモードラインが定義されていなければ、
その位置に現在の設定情報を元にモードラインを挿入します。

モードラインの新規挿入

もし、モードラインがファイルで既に定義されているなら、 その定義済みのモードラインが更新されます。
(既存のモードラインを上書きしてよいか聞かれるので、良ければ「Y」を押してください。)

既存モードラインの更新

Note

新規にモードラインを追加する場合は、モードラインの追加位置に注意してください。
vimエディタにモードラインを読み込ませるには、 ファイルの上か下の端から、vimエディタの「modelines」オプション行の範囲に
モードラインが定義されている必要があります。 (デフォルト 5行)

参考: モードラインを使って、ファイルごとにvimエディタのオプションを指定する。

出力するモードラインのフォーマットの変更

出力するオプションのカスタマイズ

モードラインで指定するオプションは「g:Modeliner_format」の設定で変更できます。
「:Modeliner」コマンドで出力したいオプションを決定したら、
vimエディタの設定ファイルに、下記の例のように設定を追加してください。

" 「g:Modeliner_format」の設定例
:let g:Modeliner_format = 'fenc= ts= sts= sw= autoindent et filetype='
  • モードラインで出力したいオプションの名前を「g:Modeliner_format」で指定します。
  • 数字型、文字型のオプションは、オプション名の後ろに「=」をつけます。
  • ON、OFF型のオプションは、オプション名をそのまま書きます。
  • 各オプション名の間は、スペースで区切ります。

コメントのフォーマット

「:Modeliner」コマンドで生成されるモードラインは、 そのファイルタイプごとのコメント付きで出力されます。
このコメントのフォーマットを変更したい、あるいは、自分の定義のコメントにしたい、 という方もいらっしゃるかもしれません。

モードラインはコメント内で出力される。

「:Modeliner」コマンドで生成する、モードラインのコメントのフォーマットを 最も簡単に変えるには、
「&commentstring」の設定を変更すると良いでしょう。

:let &commentstring='<!--%s-->'

「&commentstring」の設定の「%s」の部分がモードラインに置き換わります。

Note

「:let &commentstring」以下の設定を、vimエディタの設定ファイルに直接書いてしまうと、
全てのファイルタイプで設定が変更されてしまうので、
そのファイルタイプでのみ有効になるように工夫する必要はあります。

注意事項など

このスクリプトは「現在の設定」にしたがってモードラインを出力するので、
実際の使い方としては、
新規に作成したファイルにモードライン入れる場合以外は、
「:set」コマンドを使用してエディタの設定を、そのファイル用に変更してから、
「:Modeliner」コマンドでモードラインを挿入することが多くなる、と思います。

ドキュメントアクション
コメント
blog comments powered by Disqus