2020/04/21 今日したこと

Makefile を騙す#

ちょっとした学びがあった。GNU Make には make -t なるオプションがあり、これは GNU Make 自体を騙すことに使える。

例えば、以下のようなタスクがあるとする。

.PHONY = task
task: foo.csv
	./task.sh  # foo.csv に依存する処理

foo.csv: hoge.sh
	./hoge.sh > foo.csv

このとき、make task とすると、foo.csv を作成してから ./task.sh を実行するはずだ。それが Makefile を書いている理由なんだから当然である。

一方、foo.csv になんらかの問題があって、そのバグを再現したいときは foo.csv を作り直して貰っては困る。そういうときに上述の -t オプションを使う。make -t foo.csv とやってから、make task とやると、foo.csv のタイムスタンプによらず task.sh のみが実行される。

Emacs の IME#

Ubuntu 18.04 の調子が最近悪い。GNOME ? の GUI がもろもろ調子が最近悪く、設定ページが出てこなかったり、繋いだハードウェアの設定ページが出てこなかったり、大勢に影響はないのだけれど微妙に困る事象が頻発している。

と、久々に GUI を変えてみるかと Unity なるものの存在を思い出し Unity でログインしてみた。GNOME のときにストレスフルだったことがいくらか改善され喜んでいたら、あちら立てればこちらが立たずで、Emacs の日本語入力ができなくなった。おいおいおい。

仕方ないのでこんなコミットをして、Emacs 上で IME が動くようにしてみた。ちょっと重い気がするけれど、入力できないよりはいいや。

とはいえ、Emacs 上のときだけ C-\ で日本語・英語を切り替える、それ以外は標準的な方法、というのもなんか慣れるかわからない設定だ。正直この記事を書きながら何度全角半角キーを押したかわからない。とはいえまぁそのうち慣れるでしょう。いつの間にか Vim のときは hjkl で、Emacs のときは C-npfb で動くことにもなれていたし。いけるいける。知らんけど。