すっかり忘れていた補完の話

 3D殺人ゲームに夢中ですっかり忘れ去っていたというか、シロさんの所で着々とsnippetらしき機能について書かれているのみて思い出しのたは秘密ですが、ともかく補完の話とか。余り関係ないけどシロさんという名前の人は沢山いるのかどうも誰が誰なのかよく分からない。

 実は前に書いた時(去年の12月半ばくらい?)に自分的にはまとめて、そこそこ動くから良いかなぁとか思って使いながら後は適当にいじっている感じだった。packageみたいなのにはしているので、どこかにアップロードしてもいいけど、引数チェックするのが人様の機能な上に、今使っているのは、余りに癖が強いというか、使っていると時々マウスが聞かなくなっているので、自分の個人的な癖にあわせて貰えないと使えないというか、全部キーボードで入力しろというか。まあ、そんな感じの悲惨なものになっている。それと、次の入力場所に移動するの機能とかはすっかり忘れ去って記憶になかった。
 silog*1を見てたらinteractiveでタブで(interactive "")と言うのが書いてあったりした。自分も同じような動きをさせている。でも""しない時のほうが多いと使っていて気づいたのでinでタブすると静的補完で(interactive)
とかにもなったりするようにしてます。

■今使っているものの具体的な動作

  1. (を打つと補完が始まる。
  2. 入力に応じてインクリメンタルに補完
  3. 補完したら引数を調べて必ず閉じ括弧が来る場合には閉じる(よく見たら取り外してあるので何か不都合があったのかも、もう覚えていないけど)
  4. 引数が必要な場合はspaceを押すと"")とかが出てくる

ex

  1. ( ;補完開始
  2. (interactive ;補完
  3. (interactive ;spaceを入力すると
  4. (interactive "ここにカーソル") ;こんな感じに

でも、実際には使ってみると頻繁に補完する場合だと面倒なので

  • inでタブすると(interactive)になったりするのを頻繁に使っている。

in"でタブすると(interactive "")になったりするのも便利そうだとか今思った。

■追記
タブじゃなくて良く考えたスペースで補完らしきのを判別していることに気づいた。inでタブすると(interactive)にinでスペースとかで、待てよ、スペースだともし英語とかで何か書いたりしたら悲惨なことになりそうなので使われてない便利そうなキーにした方がいいのかな。でもまあ、補完候補をinとかあほな設定にしなければいいだけかもしれない。

*1:( ̄ー+ ̄)キラリ