muroiです。
今日はemacsのキーボードマクロの学習をしました。
覚えておくとなかなか使えますね!
まず最初に本日やった課題から見てください。
[課題]
以下の都道府県と、県庁所在地をPHPの連想配列にして格納してください。(都道府県名がキー、県庁所在位置が要素でいれてください。)
北海道 札幌 青森県 青森 岩手県 盛岡 神奈川県 横浜 宮城県 仙台 秋田県 秋田 山形県 山形 和歌山県 和歌山 福島県 福島 埼玉県 さいたま 茨城県 水戸
このように規則性もあまりないような文字列を一個一個入力していては膨大に時間がかかってしまいます。
前回学習した置換処理を使って無理矢理やっていく・・という方法もあるのですが、それも効率的とはいえません。
そんな時にどうするかという事で、今回はキーボードマクロを使ってやっていきました。
まず簡単な使い方
C-x (
と入力し、その後に実際記憶させたいコマンドを入力します。
たとえば今回の課題だと、まずカーソルを最初に移動、文字を囲む「”」、スペースや「=>」
など、実際に一行分普通に配列を書く処理を記憶させます。
" M-f " C-f = > M-f M-b " M-f " , C-a
これで実際に一行配列を書く処理を記憶させる事ができました。
入力が完了したらマクロを終了させます。
C-x )
これでマクロは完成です。あとは実行するだけで配列にように書き換える事ができます。
実行方法:
C-x e :これで一回マクロが実行されます。 C-u * * C-x e :こう入力する事でマクロは**回実行する事ができます。 C-u 0 C-x e :0を指定すると、エラーが出るまで実行できます。 (エラーはマクロが正常に動かなくなるまで)
実行方法が複数あるのですが、まず一回のみマクロを実行して動きを確認してから複数回実行を行った方がいいかと思います。合ってると思って確認せず、エラーが出るまでやっちゃえ〜!って感じでやるとエラーが出ないで、永遠にマクロが繰り返されてしまう事もあるかもしれません。
自分はそれでマクロが止まらずに失敗をしました・・。
以下が実行前と実行後の結果になります。
実行前:(一行だけ記憶させるため手入力)
"北海道" => "札幌", 青森県 青森 岩手県 盛岡 神奈川県 横浜 宮城県 仙台 秋田県 秋田 山形県 山形 和歌山県 和歌山 福島県 福島 埼玉県 さいたま 茨城県 水戸
マクロ実行後
"北海道" => "札幌", "青森県" => "青森", "岩手県" => "盛岡", "神奈川県" => "横浜", "宮城県" => "仙台", "秋田県" => "秋田", "山形県" => "山形", "和歌山県" => "和歌山", "福島県" => "福島", "埼玉県" => "さいたま", "茨城県" => "水戸",
これで一気にPHPの連想配列に入れられるような形に変更する事ができました。
すごい楽にでき便利です!今後もきっとそのうち使う機会があると思うのでぜひ覚えておきたいです。
これがわかっていれば、仮に都道府県が全部で1万とかになったりしてもすぐ配列の形に変える事ができます!(これに限った事でなく使う用途はもっとあると思いますが・・)
—-
(2008/05/26 18:38 hirafuji追記)
動画をご覧下さい!

コメントをどうぞ