Subscribed unsubscribe Subscribe Subscribe

anythingでのpatternにカーソル位置の単語を使う

よく読んでなくて危なく車輪の再発明をしようとしてしまうところだったのでメモ。
anythingで何か行う際に、現在のカーソル位置にある単語を使いたいときがあったりする。例えばanything-occurでバッファ内にある同じ変数名を探すときなど。普通にM-x anything-occurを開くとminibufferには"pattern: "と出るだけでそこから自分で入力して絞り込みをしていかないといけない。初期値として何かを設定した状態でanythingを開くには、anything関数を呼び出す際に:inputKeywordsを指定してやることで実現出来るらしいけど、そうするとそれを呼び出すanything-***コマンドまで定義を書き換えなくてはならない。
そんなことしたくないなーと思ってanything.elのドキュメントをよく読んでみたら、

:default

A default argument that will be inserted in minibuffer with M-n.
When nil of not present `thing-at-point' will be used instead.

と書いてあるのに気付いた。
:defaultKeywordsに何も指定されずにanythingが呼ばれた場合、thing-at-pointで得たものがM-n(next-history-element)でもってくることができる、ということ。なので、minibufferのpromptは最初は空っぽでも、M-nで一発でその場のカーソルの単語をもってくることができる。
知らなかった…

thing-at-pointは、カーソル位置の情報を取得してくれる関数。
カーソル位置の情報で遊ぼう。 - 日々、とんは語る。


ということで、例えば何か分からない関数やシンボルがあって調べたいときは、カーソルをそいつのところに持っていって、 aanything-c-aproposを呼んで、すぐにM-nを押せばその単語で絞り込めるのでサクッとその定義を調べることができる。便利!