Откроется окно и выберите файл, связанный с предыдущим буфером?

Скажем, я редактирую blah.txt с помощью Emacs, и я решил открыть dired для переименования файла blah.txt. Когда я нажимаю C-x d RET (или C-x C-f RET), будет отображаться загруженный буфер, чтобы отобразить содержимое каталога, содержащего blah.txt, но курсор не будет находиться на blah.txt. Поэтому сначала нужно сначала найти файл (C-s blah.txt), чтобы поместить на него курсор, а затем я могу переименовать его (R).

Как мне автоматизировать или удалить шаг C-s blah.txt?

Ответ 1

dired-jump - это именно то, что вы хотите.

(autoload 'dired-jump "dired-x" "Jump to dired corresponding current buffer.")
(autoload 'dired-jump-other-window "dired-x" "jump to dired in other window.")

Затем вызовите:

M-x dired-jump

или

M-x dired-jump-other-window

Ответ 2

Вы хотите C-x C-j.

Ответ 3

Sunrise Commander значительно улучшен. и он делает то, что вам нужно по умолчанию.

Ответ 4

Вы можете сделать что-то вроде этого:

M-: (dired (buffer-name (current-buffer)))

Тогда единственный файл, видимый в dired, будет вашим текущим файлом, и курсор будет на нем.

Ответ 5

Этот совет будет делать то, что вы хотите:

(defadvice dired (around dired-jump-to-buffer activate)
  "When running dired, move cursor to the line for the buffer we came from"
  (interactive (list nil nil)) ;; bogus values, will be overwritten below
  (let ((coming-from (buffer-file-name)))
(ad-set-args 0 (dired-read-dir-and-switches ""))
ad-do-it
(when (and coming-from
       (equal (file-truename default-directory) (file-truename (file-name-directory coming-from))))
    (goto-char (point-min))
    (search-forward (file-name-nondirectory coming-from) nil t))))

Примечание. Работает для C-x d, но не для точки ввода C-x C-f для прочтения.

Ответ 6

$ emacs --version
GNU Emacs 24.3.1

В .emacs:

(require 'dired-x)

Теперь C-x C-j должен быть привязан к dired-jump.