"^L" is 何?

割とどうでもいい話。python2.7 の 標準ライブラリのemail/message.pyの中で"^L"ていう制御コードを見つけた時の話。

f:id:tell-k:20140309224747p:plain

そもそも "^L"てなんだっけ。。。から始まり、調べてみたら改ページだった。

vimエディタの印刷で改ページ : サイト更新停滞ちうっ [ 名無しのVIM使い ]

それは良いとしてなんでこんな所に改ページの制御コード入ってるんだろうと思ってさらに調べたら、下記のような同じような疑問をもったヒトが書いたスレを見つけた。

Issue 7513: many source files contaminated with form feed (\f) characters - Python tracker

こんな事が書いてあった。

  • ivank 「Python 2.7の r76831 をチェックアウトしたら、大量のファイルに改ページが入ってるんやけど(震え声) ... 」
  • lemburg 「俺の覚えてる限り、Barryがそれ好きなんだよね。理由はよー知らんけど ;-) 」
  • barry 「それEmacsの次ページ、前ページへのナビゲーションコマンドなんだよね。 Pythonは空白扱いするけど、何か問題ある? :)」
  • amaury.forgeotdarc 「それPEP8でも許容されてっから。。。」

えw マジで? そんな事書いてありましたっけ?とPEP8を見に行く。

Python accepts the control-L (i.e. ^L) form feed character as whitespace; Many tools treat these characters as page separators, so you may use them to separate pages of related sections of your file. Note, some editors and web-based code viewers may not recognize control-L as a form feed and will show another glyph in its place.

via http://legacy.python.org/dev/peps/pep-0008/

Python は Control-L (^L: From Feed) 文字を空白文字として受け入れます。 多くのツールはこの文字をページ区切りに使うので、この文字をファイル内の セクションを分けるページに使うことができるかもしれません。 しかし、いくつかのエディターや Web ベースのコードビューアは Control-L を認識せず、その場所に別の文字を表示するかもしれません。

via https://dl.dropboxusercontent.com/u/555254/pep-0008.ja.html

ナルホディウス。

なんどかPEP8に目を通してるつもりだったけど、まったくもって頭に入ってないという事が良くわかったオジサンなのでした。

おわり。