emacs dired-mode: как "выйти" и оказаться в оболочке в текущем каталоге? - PullRequest
9 голосов
/ 08 ноября 2011

В Mac OS я могу использовать терминал, написать «cd», а затем перетаскивать папки из Finder в терминал.Затем я получаю что-то вроде «cd / Users / ...», что позволяет мне быстро перейти в соответствующий каталог.Если я открою оболочку emacs с помощью оболочки Mx и перетащу в нее папку, emacs изменится в режиме dired и покажет мне содержимое папки, которую я сбросил.Как я могу "выйти" или "выйти" из режима dired и получить оболочку, в которой каталог был изменен на папку, которую я удалил?Это дало бы мне что-то подобное выше, и это было бы весьма полезно.

1 Ответ

6 голосов
/ 08 ноября 2011

Вы можете реализовать функцию для открытия оболочки вместо буфера. Эта функция полезна во многих других случаях, не только в случае DnD

(require 'dired)
(define-key dired-mode-map "c" 'shell-instead-dired)

(defun shell-instead-dired ()
  (interactive)
  (let ((dired-buffer (current-buffer)))
    (shell (concat default-directory "-shell"))
    (kill-buffer dired-buffer) ;; remove this line if you don't want to kill the dired buffer
    (delete-other-windows)))

РЕДАКТИРОВАТЬ В этом случае вам нужно DnD каталог в Emacs и нажать 'c', чтобы вызвать оболочку в этом каталоге.

В противном случае вы можете установить пакет smart-dnd и настроить его для открытия оболочки. Я также предоставляю другие полезные вещи, такие как создание тегов <img ...> в режиме html, если вы отбрасываете jpg или #include<...> в режиме c, если вы отбрасываете заголовок.

...