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 ってのも便利ですよ。
おお、知りませんでした。これは便利ですね。