03/02/11 03:03
331です。
>>332
KoRoNさん、解説どうもありがとうございました。
とりあえず納得はしたのですが、"至極当然"とか言われちゃうと
どうしても文字列をどのように扱ってるかが気になってしもたので、
vimのsource codeを見てみましたが、漏れには解析追いつかずでした… (´Д⊂グスン
しかし!
trans_special()が定義されているmisc2.c内で偶然<Char->の存在を知り、
:help <Char->
を見ると、なんと!ロトのつるぎを見つけた! …じゃなくて、
漏れが >>331 で
> > 文字を直接ascii codeで指定できたりすると良いんですけどね…
> > \0x0a (← ctrl-J)みたいな感じで (\0x61なら'a'になるみたいな)
と言っていた機能が既に有るではないですかぁ!
てことで、
substitute(@a, "\<Char-0x0a>", '', 'g')
と書いても
> substitute(@a, "\<NL>", '', 'g')
これと同じ動作になることが確認できますた。 ヽ(´▽`)ノ
<Char->は元々multi-byteを扱うのに便利な機能として用意されていたらしいですが、
これなら\e, \t, \r, \b以外の制御文字も(知ってればですが)扱えますね。
あまり綺麗じゃありませんし、素人にはお勧めできない諸刃の剣かもしれませんが…
# もしかして反則技ですか?
あ! ASCIIじゃなくてEBCDICの時に使えないですね…
# 早くもダメケースをハケーンしてしまった… ΣΣ(゚д゚lll)ガーン!!