[13]
vi:,
vim:,
ex:
のいずれかを行に含めます。
>>10
[23]
ただし vim と : の間に、
空文字列 (≧ の意味。), <, =, > のいずれかと、
数字列を指定できます。
数字列は、 Vim の major version × 100 + minor version
を表します。
Vim の版番号が指定の条件を満たすときのみ適用されます。
>>10
[14]
>>13 の前には1つ以上の空白 (U+0009, U+0020) を置きます。
ただし、行頭に vi:, vim:
が続く場合は、空白を0個とできます。
>>10
[15] >>13 の後には0個以上の空白を置きます。 >>10
[16]
第1形では、
>>15 の後には空白または
:
で区切られた0個以上の option setting
の並びを置きます。
>>10
[19] 第1形では、 >>13 の前に0個以上の文字を置けます。 >>10
[17]
第2形では、
>>15 の後には
set または se を置きます。
>>10
[18]
>>17 の後には空白で区切られた option の並びを置きます。
その後に
:
を置きます。
>>10
[20] 第2形では、 >>13 の前や >>18 の後に0個以上の文字を置けます。 >>10
[24]
並びの中において : は \: と書きます。
\: は \\: と書きます。
>>10
[26]
並びの中の値は、 :set に設定する値とみなされます。
>>10
option の名前だけが指定されることもあれば、
= に続けて値が指定されることもあります。
他にも option のデータ型によっていくつかの指定方法があります。
[27]
モード行として解釈されるかどうかは、 option
modeline,
modelines
に依存します。
>>10
[32] ファイルの先頭か末尾の指定行数がモード行として解釈されます。 >>10 最後の改行の後の末尾の行をどう数えるのかはドキュメント上明確ではありません。
[39] モード行の区切りとなる改行文字の違いは option によるものと思われます。 モード行によるその変更が即座に反映されるのかはドキュメント上明確ではありません。
[40]
文字コードの認識は option によるものと思われますが、
モード行によるその変更がモード行の処理に即座に反映されるのかはドキュメント上明確ではありません。
ASCII互換ではない utf-16le などとの相互作用もドキュメント上明確ではありません。
[28] Vim にはいろいろな option があります。 option はいくつかの方法で設定でき、 そのうちの1つがモード行です。ただしモード行では設定できない option もあります。
[29]
modeline = ml
option
は、 boolean であり、既定値は Vim 通常利用者で on、
root で off、 Vi で off です
(compatible = cp が on のときこちらの既定値となります)。
modeline
が
off だと、モード行は検査されなくなります。
>>10
[30]
modelines = mls
option
は、 number であり、既定値は 5 です。
modeline が on のとき、
modelines で指定された行数分、
モード行が検査されます。
>>10
[31]
binary = bin option (= 起動時の引数 -b)
の副作用の1つとして、 modeline は off に設定されます。
>>10
[33]
モード行が複数あるときの処理順はドキュメント上明確ではありません。
modeline, modelines 等が即座に反映されるのかはドキュメント上明確ではありません。
[34]
fileencoding = fenc
option
は文字コードを指定します。
古い版では fe がありましたが、既に廃止されていて実装されていないようです。
>>10
[35]
fileencodings = fencs
option
は文字コードの候補を指定します。
[36]
fileformat = ff
option
は改行コードを指定します。
fileformats = ffs
option
は改行コードの候補を指定します。
>>10
[37]
filetype = ft
option
はファイル形式を指定します。
. 区切りでいくつか指定できます。
>>10
[38]
syntax = syn
option
は構文ハイライトのためのファイル形式を指定します。
. 区切りでいくつか指定できます。
>>10
[41]
他のエディターの同様の機能もモード行と呼ばれることがあります。
[9] Modeline magic | Vim Tips Wiki | Fandom, , https://vim.fandom.com/wiki/Modeline_magic
[8] ファイル内にex:: が入っているとError detected while processing modelinesが表示される · Issue #1281 · vim-jp/issues, https://github.com/vim-jp/issues/issues/1281
[6] Xユーザーのドッグさん: 「最近 Vim のモードライン判定が地味に誤爆する… 例えば { vim: true } というオブジェクトをつくるとそこで vim: をモードラインだと思ってしまう」 / X, , https://x.com/Linda_pp/status/1145585417896353792
[1] PEP 263 -- Defining Python Source Code Encodings | Python.org () https://www.python.org/dev/peps/pep-0263/
[5] Modeline magic | Vim Tips Wiki | Fandom, , https://vim.fandom.com/wiki/Modeline_magic