80桁以上の行を抽出する
エディタによっては80桁のところに縦線が入ってたりして、80桁オーバーしているかすぐにわかるようになっていますが、Emacs(Meadow)でそれに類することはどうやって実現するのがよいでしょう。M-x column-number-modeでモードラインに今何桁目かは表示できますが、じゃあファイル全体でどうなの?っていうのがわかりにくいです。
たぶん一番いいのは「Faceを作成して、80桁以上だったらその行全体の色を変える」かと思います。が、Face辺りを触るのは面倒そうなので、M-x grepを応用する方法を考えてみます。
ファイル: over80.rb
#!/usr/bin/env ruby while line = ARGF.gets next if line.size <= 80 print "#{ARGF.filename}:#{ARGF.file.lineno}:#{line}" end
まず80桁以上の行を抽出するフィルタコマンドを作ります。GNU grepのオプションでもできそうな気がしますが、Rubyで作ってみました。
Exerb化 & UPXで圧縮します。できたover80.exeを適当にPATHの通ったところに置きます。
>exerb over80.rb >upx over80.exe Ultimate Packer for eXecutables Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006 UPX 2.01w Markus Oberhumer, Laszlo Molnar & John Reiser Jun 06th 2006 File size Ratio Format Name -------------------- ------ ----------- ----------- 524288 -> 221184 42.19% win32/pe over80.exe Packed 1 file.
あとはM-x grepのときにover80.exeを指定するだけで、80桁以上の行を抽出できます。
参照: http://www.bookshelf.jp/soft/meadow_51.html#SEC746 素晴しいgrepの深入り具合です(尊敬)。