キーボードの-が遠すぎ

マイナスたたくとき右手の小指を少し伸ばすので打ちまくると指がつりそうになることがあるんだけど、単にストロークポジションが悪いだけなのか?なんか指が寝気味なだけの気もするが、、、

Meadowの設定リロード

WEB+DB PRESS Vol.40を読んでいたら、長年の疑問が解決した。

ProductName WEB+DB PRESS Vol.40

技術評論社 / ¥ 1,554 (2007-08-24)
通常24時間以内に発送

M-x eval-buffer

で.emacsのリロードができる。 いままでやり方がわからなかったので不本意ながら再起動してたという、、、

M-x comment-regionでコメントにする

pythonにはperlでいうところの__END__みたいなもんはないんか?っていうスレッドを見ていて、MeadowにM-x comment-regionっていうのがあるのを知った。

いままでdmacro.elでちまちまやってた。

さらにキーバインドを設定すればもっと快適だ。

Meadowのブックマーク機能

フォントの設定変えようとしてC-右クリックとか色々やってたら見つけた。というか、知ってたけど今まで無視してた。最近フレームワークをいじることが多くてファイルを行ったりきたりするのでふと覚えてみようと思い立った。

ブックマークする

C-x r m

リストを表示する

C-x r l

この二つを覚えておけばいいだけ。てか便利すぎ、なんで今まで使わなかったんだろうか?

あと

C-x r b bookmark

で直接ブックマーク先を開けるけど、別に知らなくてもあんま困らん。

psvnのコミットの仕方忘れてたのでメモ

emacs/Meadow用subversionインターフェースの使い方忘れてる。

ので、メモしておく

M-x svn-status
m # コミットしたいファイルをマーク
c # コミット
# コメント入力
C-c C-c

こんな感じ

MSYSは意外に使い勝手が良いことに気付いた

ちょっと前まではwin上に手軽にunix環境が作れるcygwinは重宝してたのだけど、linuxをエミュレートするcolinuxに変えてからは、cygwinの出番がすっかりなくなってしまった(colinuxで普通にlinux使えばいいからね)。

で、最近C++の勉強はじめたりしてるのだけど、コンパイルしたいだけなのに、毎回colinux立ち上げてtelnetすんのも面倒。

  • Meadow+Trampでcolinuxにアクセスしてファイルをいじって、
  • poderosaでsshしてgccでコンパイル

てのはアレだ。やっぱC-ccでMeadowからコンパイルしたいナァとMinGW+MSYSを入れてみたら、これが結構良くて、Dos窓から色々unixのコマンド使えるようになるので、DOSプロンプトでlsうってウゲーってなったりしなくてよいし、lessでファイルの中身見れるし、ちょっとした設定ファイルならMeadowでなくてvimでも編集できるし。

今はlinux上でガツガツ作業したいときにはcolinux、Win上でゆるーく使いたいときにはMSYSってな感じで使い分けてるが、MSYS-1.0.10.exeインストールした時に60位のコマンドがインストールされたんだけど、幾つか見た事がないのがあるので調べてFC1の--helpをのっけといた。

  • basename
  • パス名からディレクトリ部分を取りのぞいた名前を表示する.指定があれば, 末尾の拡張子も取り除く.
  • cmp
  • 2つのファイルをバイトごとに比較します。
  • comm
  • それぞれソートされた ファイルA と ファイルB とを行ごとに比較します.
  • diff3
  • 3つのファイルを行ごとに比較します。
  • dirname
  • パス名からディレクトリ名を切り出す. パス名にディレクトリが含まれない場合カレントディレクトリと見なして `.' を出力する.
  • fold
  • ファイルの各行の折り返しを行い, 結果を標準出力に書き込みます.
  • id
  • 指定されたユーザ名のユーザもしくは現在のユーザの情報を表示.
  • info
  • Read documentation in Info format.
  • infokey
  • Compile infokey source file to infokey file.
  • install-info
  • Install or delete dir entries from INFO-FILE in the Info directory file DIR-FILE.
  • m4
  • Mandatory or optional arguments to long options are mandatory or optional for short options too.
  • tee
  • 標準入力を各々のファイルにコピーし, 標準出力にも出力.
  • texindex
  • TeX の為のソート済インデックスファイルを生成します
  • xargs
  • 標準入力からコマンドラインを作成し、それを実行する

ポピュラー(僕的に)

bzip2 cat   chmod  cp    cut   date  diff  env
find  gawk  grep   gzip  head  less  ln    ls
make  makeinfo     mkdir mount mv    od    patch
ps    rm    rmdir  rxvt  sed   sh    sleep sort
split tail  tar    touch tr    uname uniq  vim 
wc    install      expr  false md5sum      true

Meadowで、M-x shellで普通にlinuxのターミナルっぽく使えるのもよい。

Meadowでバッファリストとバッファの切り替え

Meadow/Emacs memo: バッファリストとバッファの切り替え

Windows ではソフトの切り替えがAlt-TABで可能です. これと同じような操作を実現するのが pc-bufsw.el です. http://www.fi.uib.no/~boukanov/emacs/index.htmlからダウンロードできます. ダウンロードしたら, ロードパスの通ったところに置き, 以下を.emacs に追加します

C-Tabだとfirefoxのタブ切り替えと同じ感覚で使えるので便利だったんだけど。最近、28.2.2.1 バッファを次々と切り替える方法に変更した。これだと思い通りに前後できるので行き過ぎたときとかすぐに戻れて便利。

となると,C-,,C-.でfirefoxのタブ切り替えもしたくなるが。

Meadowでhaskellモード

ふつうのHaskellプログラミングも、とうとう第三部のWIKIをつくろうの章に突入。

ProductName ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
青木 峰郎
ソフトバンククリエイティブ / ?円 ( 2006-06-01 )


でも、第三部は実際のコードのポイントだけ解説なので、サポートページからコードをダウンロードしてきてつきあわせながら読む感じになるので、Meadowでソースコードを開いて本を読んでる。

で、perlとかjavascriptは色がついてて見やすいのに、、、Meadowにhaskellモードってないのかなぁと思って探したらあった

これでかなりコードが読みやすくなった。

あと本を最後まで読んでみての感想だが、ふつうのHaskellプログラミングは一部、二部と三部の具体事例の間にはかなり開きがあるような気がした。二部と三部の間に数学的な問題を事例として扱う部もあったほうがいいような。

というわけで、「連載: Haskellプログラミング」なんかを読んで解くといいかもしれん。

plaggerでChangeLogを扱う

clmemoみたいなchangelog形式のファイルをplaggerでフィルタリングしながらしかるべきとこ(はてブ,gmail,デリシャスとか)に送れたら便利じゃんと思ったので、シコシコと書いてみた。最初ココいじればいいかなと思ったんだけど、配列だとちょっと使いにくいのとヘッダーもう少し分けたかったので自分で書いた(そのせいでちょっとおかしいとこがある)

Plagger::Plugin::CustomFeed::ChangeLog

clmemo.txtはこんな感じ

2006-05-26  kzfm  <kerolinq@gmail.com>
        * test: テスト汁
        断酒でコーディング、呑むとやる気なくなるからな

2006-05-23  kzfm  <kerolinq@gmail.com>
        * 雑感: 今日は朝からお疲れ気味。
        最近雑用おおすぎ
        ちょっと会議もふえすぎ

* 雑感: WindowsXPだと環境変数の扱いがイマイチわからなくて苦労した
        なかなかつらい
global:
  timezone: Asia/Tokyo

plugins:
  - module: CustomFeed::ChangeLog
    config:
      changelog_file: /home/kzfm/clmemo.txt

- module: Publish::Gmail
    config:
      mailto:   xxxxxx@gmail.com
      mailfrom: xxxxxx@gmail.com
      mailroute:
        via: smtp
        host: localhost:25

gmailに送ったらこんな感じ。

changelog2plagger

あー、毎度のことながらwarningでてます。

$ ./plagger -c changelog.yml 
Plagger [info] plugin Plagger::Plugin::CustomFeed::ChangeLog loaded.
Plagger [info] plugin Plagger::Plugin::Publish::Gmail loaded.
Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded.
Plagger::Plugin::CustomFeed::ChangeLog [info] Load /home/kzfm/clmemo.txt

Warning (line 22): Found an action ({$item[1]}) after an unconditional
                       
Plagger::Plugin::Publish::Gmail [info] Sending ChangeLog to xxxxxx@gmail.com

まだParse::RecDescentのitembodyのところが駄目駄目なのと、データの構造汚いのが気に入らない。日付とアイテム毎に入れ子のループを回さないといけないのだが、そういう場合ってどういうデータの構造にするのがよいのだろう?ハッシュと配列が入り混じっててヘナチョコになってしまったヨ。

パッと思いついたことをgmailに送りたい

Chiba日記~つぶやき~

いちいちgmailにアクセスするのが面倒なので

僕はclmemoを使っているので、こういうことができるEmacs-Lispがあれば嬉しい。 clmemoのtextファイル監視しておいてplaggerでgmailに送るのもありかな。とか考えるとblosxomのpublishもwikieditishじゃなくて、plagger使ってclmemo形式のやつをタグでフィルタリングして必要なものはtodoへ、blogに送るやつはblogのエントリとして突っ込むみたいなことにしたほうが楽チンなのかな。

ちなみに、todoだったらfirefoxの拡張使ってgoogle calendarに突っ込むことも多いです。出社時間前とか夜中に予定として入れておくと嫌でも目に付くヨ。