リテラルの % 表記
普段使わないので、すぐ忘れる。
リテラルを % 表記すると、任意の文字をリテラルの区切り文字に使える。
% 表記 | 式展開 | 例 | ふつうのリテラル |
---|---|---|---|
%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:任意の文字が選べるのに、わざわざ ぶつかる文字を選ばなくても ……