[C&C for Human Potential / NEC Corporation]

こんな機能使っている人いるの?(1) mark


 こんにちは、NEC で Canna を開発しております今(こん)と申します。 今後ともよろしくお願いします。

 今回から何回かに渡って「インプリメントは したけれど、こんな 機能 使っている人いるんかい?」といった機能について 紹介していきたいと思います。これは決して「便利だからみんな使いましょうね」 というものではなくて、 メーリングリストでもこの機能について 誰かが話しているのを聞いたこともなく、自分(開発者自身)もあんまり使わない、 といった、いわばマニアックな機能で、知ったからと言って得するかどうかは なんとも保証のしようがなく、単に知っていたことによる「変な人度」が増す 程度のものとお考えください。

 それでは、映えある第1回を開始したいと思います。第1回に選ばれたのは markです。

 さて、markとはなんでしょう。なんとなく聞いたことがありますね。もちろん、 一般用語ではちゃんとした意味がありますが、mark と英語で書いた場合にも UNIX 通なら聞いたことがあるはずです。

 そう、Emacs で良く使う機能ですね。Emacs で領域を指定する時に、カーソルと 対にして使うもので、コントロールキーを押しながらスペースキーを押すと現在 カーソルが位置している部分に設定されるのが mark です。

 まずは Canna の場合はどうやると mark 機能が実行されるか見てみましょう。 マニュアル を見るのが いちばんなのですが、ここでは ソース を見てみましょう。lib/canna/defaultmap.c を見てみると C-@ 、すなわち Emacs と同じコントロール+スペースに mark が割り当ててあるのがわかりますね


 では、次に機能をご紹介しましょう。 Canna における mark も Emacs の mark と大体同じ意味を持っています。つまり 領域を設定するのが mark なんですね。

 Emacs の場合は領域を設定して、その領域をコピーバッファにコピーしたりしますが、 かな漢字変換システムである Canna では領域を設定してどう使うのでしょうか?

 Canna の場合は次のようになります。まずは具体例を見ていただきましょう。 左図の(1)は入力中にマークを打ったところです。マークを打っても見た目は 全く変わりません。入力中の文字列が確定するということもありません。

 (2)はマーク後さらに入力を続けた図です。ここでもマークを打たなかった場合に 比較して何ら変わるものではありません。

 (3)ではC-n(あるいは↓でも可)による字種変換をしているところです。 ここで違いがあらわれましたね。そうです。字種変換の対象領域が、通常は 入力中の文字列全体が対象となるはずなのですが、マークから後だけが 対象となっています。つまりマークを打つことにより、字種変換の開始位置を 変更することができるのです。

 それでは、mark の機能って字種変換のための領域の設定だけなのでしょうか? う〜ん、渋い質問です。実は奥深い機能があるのですが、第1回目でそのことを 述べてしまうのはあまりにも強烈です。そういうわけで、その奥深い部分に 関しては別の機会にゆずるとして、今回は「mark は字種変換の領域の開始を 指定するもの」と覚えておいてください。


1996.11.5 今昭記

「かんな」ホームページに戻る



[Copyright(C) NEC Corporation 1996. NEC and C&C are trademarks of NEC Corporation.]