ふと思い立ったのでこんなコードを書いてみました。 Emacs Lispプログラミングをしている人にはもはや当たり前かもしれないけど、 propertize 関数がどう見ても Rubyの特異メソッド に見えてきたので。 しかも helm の情報源を記述するときに、 display-to-real 属性で テキストプロパティ を つけてあげると、文字列に付随するデータを渡せます。 (setq s1 "foo" ;; s2にテキストプロパティをつけてあげる s2 (propertize "foo" 'value "bar" :number 1 'func (lambda (self) (capitalize self)))) (string= s1 s2) ; => t ;;; もはやただの文字列ではない(笑) (get-text-property 0 'value s2) ; => "bar"