翻了翻C-h m, 没找到多数mode里可用的" g g "的等价物
纠正下,是第一个文件
翻了翻C-h m, 没找到多数mode里可用的" g g "的等价物
纠正下,是第一个文件
像一般的 Buffer,M-<
(beginning-of-buffer
) 移动光标至开头,自然也就是第一行。
假如你想要的是第一个文件所在位置的话,可以试试:
(defun your-dired-goto-first-file ()
"移动光标至第一个文件所在的位置."
(interactive)
(goto-char (point-min))
(dired-goto-next-file))
更合理的 beginning-of-buffer
版本可以自己写。
用面向对象的 defmethod
定义也可以。
(defun my-special-beg-of-buf (&optional arg)
(interactive "^P")
(do-my-special-beg-of-buf (cons major-mode arg)))
(cl-defmethod do-my-special-beg-of-buf (arg)
(beginning-of-buffer (cdr arg)))
(cl-defmethod do-my-special-beg-of-buf :after ((n (head 'dired-mode)))
(while (not (ignore-errors (dired-get-filename)))
(dired-next-line 1)))
(cl-defmethod do-my-special-beg-of-buf :after ((n (head 'ibuffer-mode)))
(ibuffer-forward-line 1))
(defmacro def-special-beg-buf (name qual &rest body)
`(cl-defmethod do-my-special-beg-of-buf ,qual
((n (head ,(inter (format "%S-mode" name)))))
,@body))
(def-special-beg-buf occur :after
(occur-next 1))
伪代碼,沒实測过能不能用。好处是节约命名空間。