2011-04-06から1日間の記事一覧

Emacs の moccur-grep っぽい grep コマンド

grep-dialog は正直使いづらいので、ミニバッファで入力する grep コマンドを作ってみた。emacs では grep を使わずにほぼ moccur-grep だけで過ごしていたので、体がそれになじんでしまった。 なので、操作は moccur-grepっぽくなっている。ただ、下記はち…

パス文字列のドライブレターを大文字にする

ちょっと気になったので、書いてみた。 (defun upcase-drive-letter (s) (if (char= #\: (char s 1)) (string-upcase s :start 0 :end 1) s)) ;; test (let (( s "d:/util/xyzzy")) (upcase-drive-letter s)) "D:/util/xyzzy"

文字列リストの重複をなくす

たとえば、パス文字列を保存したリストの重複をなくしたい時はどうするか。 (let ((l '("d:/work" "C:/foo/bar" "D:/work" "d:/work/lisp" "D:/work/lisp"))) (remove-duplicates l :test #'string-equal :from-end t)) ("d:/work" "C:/foo/bar" "d:/work/li…

プロパティをテストしてみる

(defun foo (x) "increment" (1+ x)) (get 'foo 'lisp::function-documentation) "increment" (defvar hoge nil "hogehoge") (get 'hoge 'lisp::variable-documentation) "hogehoge" おもしろい! ところで、variable-documentation とかのプロパティ名(イ…

ミニバッファで入力するときのヒストリーの使い方 (2)

interactive 以外でやってみる。 下記は read-string の例 (setq inserttest-history nil) (setf (get 'inserttest 'ed::minibuffer-history-variable) 'inserttest-history) (defun inserttest () (insert (read-string "string: " :history 'inserttest)))…

ミニバッファで入力するときのヒストリーの使い方

read-string とかのヘルプを見ても、:history には minibuffer-history-variableプロパティを持つシンボルを指定します としか書かれてなくて、どうしたらいいもんか分からなかった。ココが参考になった。 下記のテストは転記だが、 (setq inserttest-histor…