anything-c-source-mark-ring を作った
マーク箇所をリスティングする anything-c-source-mark-ring を作った。
ソフトウェアと本の覚え書き(2008-10-25) のパクリ + persistent-action の追加という代物。
微妙にanythingインターフェースの作り方忘れてるw
というか、こんなことしている場合じゃ無いはずww
20:41修正
元々の作者さんも書いていたが、リングの内容がずれるて表示されるので、無理矢理修正。
icicleのパクリコードです。
(defvar anything-c-source-mark-ring '((name . "mark-ring") (candidates . anything-c-source-mark-ring-init) (init . anything-c-source-mark-ring-init) (action . (("Goto line" . (lambda (candidate) (goto-line (string-to-number candidate)))))) (persistent-action . (lambda (candidate) (switch-to-buffer anything-current-buffer) (goto-line (string-to-number candidate)) (set-window-start (get-buffer-window anything-current-buffer) (point)) (anything-persistent-highlight-point (line-beginning-position) (line-end-position)))) )) (defun anything-c-source-mark-ring-init () (with-current-buffer anything-current-buffer (let* ((ring (cons (mark-marker) mark-ring)) (lines (mapcar (lambda (pos) (save-excursion (goto-char pos) (let ((line (buffer-substring-no-properties (save-excursion (beginning-of-line) (point)) (save-excursion (end-of-line) (point))))) (when (string= "" line) (setq line "<EMPTY LINE>")) (format "%7d: %s" (current-line) line)))) ring))) (sort lines 'string<) )))
12/2 C-u C-SPC で anything-c-source-mark-ringが発動するように設定追加
(defadvice icicle-goto-marker-or-set-mark-command (around icicle-goto-mark-or-set-mark-command-take-over-anythig activate) (if (> (prefix-numeric-value (ad-get-arg 0)) 1) (anything '(anything-c-source-mark-ring) nil "select mark: ") ad-do-it))