6 時半起床.
今朝はやや鬱が辛い. 頓服を飲んだのだが, なかなか効き目が現れてこない. 10 時過ぎくらいにやっと普通になった.
午前中は数学の勉強をする. 任意に与えられた圏の骨格 (skeleton) を適切な方法で構築して, 骨格それ自体も圏になることを示せという問題を延々とやっている. 証明を何度も書き直していて時間がかかっているがきちんと解きたい.
以前より議論の細かいところに考えが向くようになったり, 証明内で使用する集合や写像の定義の整合性がとれていること (well-defined であること) をチェックし直したりしている.
証明自体もできるだけ圏論的な方法で書いているつもりだがどうなるか.
そんなこんなで何回も一から証明を書き直している.
これをきちんとやれば少しは前進できたと感じられるのではないか.
昼食はぶっかけ饂飩.
午後から買い物に出かける. 野菜と魚と肉の他, 豆腐の味噌汁が食べたかったので木綿豆腐も買う.
一旦帰宅して買ってきたものを冷蔵庫にしまったりした後, 散髪に出かける.
髪を切るのは昨年の暮れ以来なので, かなり鬱陶しく伸びてしまった. 短く切ってもらう.
床屋が混んでいたこともあるのか, 切ってもらっている途中から次第に抑鬱感が強くなってくる.
ちょっとまずい.
帰り道はあまり良くなくて, 背中を丸めて人と目が合わないようにしながら道路の隅っこを歩く.
鬱が苦しいときはこうなる.
頓服を飲んで少し休んでから夕食の支度をする. 食事が作れるようになったのは良かった.
豆腐とワカメの味噌汁, 豚こま肉の塩焼き, 野菜炒めと納豆とご飯.
今日は終日低調だった. ひとまず頓服で落ち着いたので多分ぐっすり眠れると思う.
2017年05月24日
Emacs: チラシ配布記録を付ける ── replace-regexp 関数
チラシ配りの記録に関して Emacs で正規表現を使った. メモしておく.
チラシを配った実績は, 実際の作業をしながら iPhone のメモアプリに
という形式で記録している. このような一日毎の記述が, 配った日数分だけメモ内に書き込まれていくことになる.
これを Mac 上の Org ファイル (たとえば report.org とする) に一日分を Org モード (org-mode) の 1 つのノードとして
の形式で書き写したい.
この処理はメモアプリの記録部分を Emacs で開いた report.org ファイルにコピー & ペーストしてから, replace-regexp 関数を使って次のようにすれば一括でできる.
※:
のように設定していることによる).
"
正規表現をまともに使うのは多分 3 年振りくらいだろう. UNIX を勉強し始めた頃に戻ったみたいで楽しい.
やはり非常に便利だ.
記述形式に関しては Emacs 独自の部分はあるが, 基本の考え方は同じなのでシェルや vi の上でも似たような感じで使える.
チラシを配った実績は, 実際の作業をしながら iPhone のメモアプリに
2017/5/23 14:30 - 16:40 200 枚。残枚数 1000 枚。
○○町 1-23-45〜1-67-89 (○○町 1 丁目終了)。□□町 2-34-56〜2-78-90 まで。
次回 □□町 2-79-1 から。
という形式で記録している. このような一日毎の記述が, 配った日数分だけメモ内に書き込まれていくことになる.
これを Mac 上の Org ファイル (たとえば report.org とする) に一日分を Org モード (org-mode) の 1 つのノードとして
** 2017/5/23 14:30 - 16:40
200 枚 (残枚数 1000 枚)
○○町 1-23-45〜1-67-89 (○○町 1 丁目終了)。□□町 2-34-56〜2-78-90 まで。
次回 □□町 2-79-1 から。
の形式で書き写したい.
この処理はメモアプリの記録部分を Emacs で開いた report.org ファイルにコピー & ペーストしてから, replace-regexp 関数を使って次のようにすれば一括でできる.
M-x replace-regexp
Replace regexp: ^\(2017/[0-9]+/[0-9]+\)[ ^I]+\([0-9: ^I-]+\)[ ^I]+\([0-9 ^I]+枚\)。\(残枚数[0-9 ^I]+枚\)。^J\(.*\)^J\(.*\)^J
Replace regexp ... with: ** \1 \2^J \3 (\4)^J \5^J \6^J
※:
^I
は TAB コード, ^J
は Ctrl-J である. それぞれ Ctrl-Q TAB, Ctrl-Q Ctrl-J で入力できる (Ctrl-J については $HOME/.emacs.d/init.el 内で
(global-set-key "\C-j" 'newline-and-indent)
のように設定していることによる).
"
14:30 - 16:40
" は正規表現 "[0-9: ^I-]+
" で表わすことができるが, これを最初 "[0-9: ^I\-]+
" とやってうまく行かず困った. 実は "-
" はエスケープする必要は無いのだった.正規表現をまともに使うのは多分 3 年振りくらいだろう. UNIX を勉強し始めた頃に戻ったみたいで楽しい.
やはり非常に便利だ.
記述形式に関しては Emacs 独自の部分はあるが, 基本の考え方は同じなのでシェルや vi の上でも似たような感じで使える.