それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

vim のモードラインでvim設定(タブなど)をファイルの先頭に書く / vim mode line

目次

expand タブしてたら怒られたよ。。。

みんなタブ文字使うんですね。わたしは、いつの頃からか、タブ文字じゃなくてスペースを使うように変わりました。

たぶん、ブログなどにコードをコピペするようになってからとくにその傾向が顕著になったような気がする。

あとHTMLやCSSの激しいネストでタブインデント幅を2にしてたとき、タブ文字表示が鬱陶しかった。というのもある。

スペースに変換してexpand tab で生活してたらチームやるときに、怒られた。。。

vim モードラインで設定する。

editor.config でグーローバルに指定されるのもあまりうれしくないので、自分のファイルはモードラインを使うことにした

vimモードライン(modeline)とは

ファイルの先頭の中のコメントに、vimの設定を書いておいて、ファイルタイプやタブの設定インデントの設定を固定するもの。モードラインという名前がふわっとしてて、よく使う単語なので、なかなか覚えられない。モードライン (mode line / modeline )の単語が思い出せず何度ググったことか

要は、ファイルごとにVimの設定を変えられる特殊な書き方

書き方

// vim:set expandtab set XXX :

: config ::でくくる

これで、vim の modeline / mode line を書くことができる。

vim モードラインの例

こんなのは習うより慣れろ。

expandtab の要請

// vim:set expandtab :

ファイルタイプをJSONで認識させる

// vim:set ft=json : 

折り返しを無効にする

// vim: nowrap : 

インデントの文字数を設定する

// vim: shiftwidth=2 : 

タブ幅を変える

// vim:tabstop=4 :

よく使う例 nginx

nginx

# vim : set ft=nginx shiftwidth=2 expandtab nowrap tabstop=2 :

php.ini

; vim: ft=dosini ts=2 sw=2 sts=2 sr noet:

とくに、 /etc の設定ファイルで大活躍する。

よく使う例 ini ファイル

# vim : set ft=dosini :

ft=ini じゃなくて ft=dosini じゃないとだめ

モードライン(mode line)

わざわざブログに残すほどのことでもないんだけど、モードラインという言葉をいつも忘れるので、モードライン(modeline)と幾度も書けば覚えていられると思ったのでメモ。

活躍する場所

個人的には、Linux の etc で大活躍してます。設定ファイルの書式はアレコとマチマチだったりするし、自動認識が上手く動かなかったり。nginx や apache のconf だったり、railsunicorn の設定が.conf なのに ruby ファイルだったり。 .xxxrcなのにJSONだったり。そういうときに活躍してる。

参考資料

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

2018/08/21

モードラインが mode line や modeline で検索にマッチしないので、キーワードをバンバン書いた