[ 紺野氏 |
黒田さん |
おとまかす氏 |
BeagleBoard ネタ |
flickr 写真しふ
]
[ 国際ビーコンモニタ |
道の駅スクロールマップ |
SoftRock v9.0 ネタ ]
2007.04.18 (Wed) 天気: くもり
■ vi エディタの modeline
もう長いこと禁断技とされていたので、名前まで忘れてしまってました。どうやって Google で探すかさえ一苦労でした。結局、elvis エディタのマニュアルで見つけました。
modeline といのは、テキストファイルの先頭付近に ex*1 コマンドを書いておくと、vi によるファイルの読み込み時にエディタのモード初期化ができる、という機能です。Emacs 使いの人には、-*- mode: Lisp; -*- みたいなもの、と言えばお分かり頂けますでしょうか? (こっちの Emacs の機能は、マニュアルで File Variables と探せば出てきます。)
閑話休題。長いこと禁断技とされていたので vim にも実装されていないんじゃないか、と思ったらありました。ただしセキュリティ問題のため、ex の set コマンド(モード変更)しかできないようになっているようです。でも、それで十分。どうやって使うか、というと、ファイルの先頭付近にこんな感じで書いておけば OK。
#!/usr/local/bin/python # -*- coding: utf-8 -*- # ex:set ts=4 fileencoding=utf-8: # $Id$
上から順に、
- BSD Unix の execve (2) が、これをスクリプトファイルと解釈して、指定のインタプリタに渡せるようにするための指示
- Emacs と Python への指示*2。ファイルの符号化方式を教えている
- これが、vi の modeline。ハードタブを 4桁に指定している (ついでに、vim 用のファイルコーディングも指定)
- RCS や CVS のための keyword substitution
という訳です。
備忘録、終わり。(← 備忘録だったらしい)
補足
ちなみに、vim で fileencoding を指定すると、ファイルの modified フラグが立ってしまって鬱陶しい。これって仕様なのか? ちなみに、ただの encoding だと問題ない。違いが良く分からない。誰か、良い参考書教えて。
- 188 http://magicant.txt-nifty.com/main/2009/03/vim-modeline-fi.html
- 20 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:en-US:official&hs=4aN&q=emacs+modeline+vi&btnG=検索&lr=
- 11 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2007-03,GGLG:ja&q=vi+Ex set+ファイルの先頭
- 11 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=S60+python&num=50
- 8 http://www.google.co.jp/search?q=Python+for+S60&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 8 http://www.google.co.jp/search?q=Python+minidom&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 6 http://reader.livedoor.com/reader/
- 5 http://search.yahoo.co.jp/search?p=viエディタ+utf-8&ei=UTF-8&fr=top_v2&x=wrt
- 5 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&q=python+xml+minidom&btnG=Google+検索&lr=lang_ja
- 5 http://www.google.co.jp/search?hl=ja&q=演算子 強さ&btnG=Google+検索&lr=

