シェル芸界隈でVimシェル芸なるVimをワンライナーで使う代物が流行ってたので、そろそろEmacsで解いてくる猛者が出てくるかなーとか考えていた。 で、なんか標準入力受け付けられないという話だったので調べてみたところ、「--insert」で/dev/stdinを指定すれば標準入力を受け付けられるらしい。

echo abcd | emacs -Q --batch --insert /dev/stdin --eval='(princ (replace-regexp-in-string "a" "1" (buffer-string)))'

blacknon@BS-PUB-UBUNTU-01:~$ echo abcd | emacs -Q --batch --insert /dev/stdin --eval='(princ (replace-regexp-in-string "a" "1" (buffer-string)))'
1bcd

さらに、@kuwashimaさんがEmacsでシェル芸の問題を解いてみてくれた。

はー…(゚д゚ )。 さすがに、標準入力の読み込み時点でVimシェル芸ほどの短さでは書けないようだが、出来ないことは無いんだなー…とか考えていたところ、数か月前に先駆者がいたようだ。

世の中は広い。