2004-04-07 (Wed) [長年日記]
_ tags-searchの検索文字列のデフォルト値
会社で「Emacs上である関数が使われている箇所を探す時どうするか」と いう話になった。 以前は、同じファイル内だけ探す時はisearch、複数のファイルを探す grepだったのだが、最近tags-searchを使うようになった。
後輩は検索のたびに関数名をコピーしてからミニバッファでペーストし て検索しているらしい。曰く、「長い関数名いちいちタイプするの面倒 臭くないですか?」 そういえば、そうだよな。でもコピー&ペーストもけっこう面倒だぞ。
tags-searchの検索文字列のデフォルト値に現在位置の識別子を渡す (find-tagみたいに)のがラクそうだなと思って、defadviceで拡張してみ た。
(defadvice tags-search (before default-value activate compile) "Provide default values." (interactive (list (let ((default (funcall (or find-tag-default-function (get major-mode 'find-tag-default-function) 'find-tag-default)))) (read-string (format "Tags search (default %s): " default) nil nil default t)))))
ついでにtags-query-replaceも。
(defun tags-query-replace-read-args (string regexp-flag) (let ((from nil) (to nil) (default (funcall (or find-tag-default-function (get major-mode 'find-tag-default-function) 'find-tag-default)))) (if query-replace-interactive (setq from (car (if regexp-flag regexp-search-ring search-ring))) (setq from (read-string (format "%s (default %s): " string default) nil query-replace-from-history-variable default t))) (setq to (read-from-minibuffer (format "%s %s with: " string from) nil nil nil query-replace-to-history-variable from t)) (if (and transient-mark-mode mark-active) (list from to current-prefix-arg (region-beginning) (region-end)) (list from to current-prefix-arg nil nil)))) (defadvice tags-query-replace (before default-value activate compile) "Provide default values." (interactive (tags-query-replace-read-args "Tags query replace (regexp)" t)))
ちなみに、自分は以下のキーに割り当てている。
(global-set-key "\M-s" 'tags-search) (global-set-key "\M-r" 'tags-query-replace)
最近ラクするのを怠けていたので、もっと頑張ってラクをしようと思う。
_ tDiaryのテーマ
ふと思い立って微妙に変えてみた。
_ グーグル、反ユダヤ論争に巻き込まれる
「Googleは、複数のコンピュータアルゴリズムだけをもとにして、検索結果の順位を決定する。基本的にウェブでの人気度を反映している」とKraneは述べる。「人間はGoogleの検索結果を操作しない。検索結果を手動で変えることはできない」(Krane)
[グーグル、反ユダヤ論争に巻き込まれるより引用]
あれ、そうだったんですか、ふーん。
関数名上にカーソルを置いて C-u M-x grep ってのも便利ですよ。
おお、知りませんでした。これは便利ですね。