リテラルの % 表記

普段使わないので、すぐ忘れる。

リテラルを % 表記すると、任意の文字をリテラルの区切り文字に使える。

% 表記 式展開 ふつうのリテラル
%q 不可 %q|foo| 'foo'
%Q %Q(foo) "foo"
% %[foo] "foo"
%x %x<echo foo> `echo foo`
%w 不可 %w{foo bar} ['foo', 'bar']
%W %W|foo bar| ["foo", "bar"]
%s 不可 %s(foo) :foo
%r %r[foo] /foo/

区切り文字に (, [, {, < を選ぶと、対応する ), ], }, > で閉じる。

開き - 閉じの対応 (ネスト) が合っていれば、値に区切り文字が現れてもエスケープ不要。*1

%((setq rct-debug t))       # => "(setq rct-debug t)"

# 対応が合っていないと ...
`echo foobar >foo`
%x<tr 'a-z' 'A-Z' \<foo>    # => "FOOBAR\n"

*1:任意の文字が選べるのに、わざわざ ぶつかる文字を選ばなくても ……