В Mac OS я могу использовать терминал, написать «cd», а затем перетащить папки из Finder в терминал. Затем я получаю что-то вроде «cd / Users / ...», что позволяет мне быстро перейти в соответствующий каталог. Если я открываю оболочку emacs с оболочкой M-x и перетаскиваю в нее папку, emacs изменяется в режиме dired и отображает мне содержимое папки, которую я сбросил. Как я могу «выйти» или «выйти» из dired-режима и получить оболочку, в которой каталог был изменен на папку, которую я сбросил? Это дало бы мне что-то подобное, и это было бы весьма полезно.
emacs dired-mode: как выйти и оказаться в оболочке в текущем каталоге?
Ответы (1)
Вы можете реализовать функцию для открытия оболочки вместо dired buffer. Эта функция полезна во многих других случаях, не только в случае 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)))
РЕДАКТИРОВАТЬ В этом случае вам нужно создать каталог в Emacs и нажать «c», чтобы вызвать оболочку в этом каталоге.
В противном случае вы можете установить smart-dnd package и настройте его для открытия оболочки. Я также предоставляю другие полезные вещи, такие как создание <img ...>
тегов в режиме html, если вы отбрасываете jpg или #include<...>
в режиме c, если вы отбрасываете заголовок.
person
Oleg Pavliv
schedule
08.11.2011
ладно, понятно, задача не из легких. Пока я просто использую 1) M-x dired 2) перейдите с помощью a в папку, которая вам нравится 3) C-u M-x shell = ›эта оболочка открывается в папке, в которую вы перешли в разделе 2)
- person Marius Hofert; 08.11.2011
Ну, все дело в скорости, верно. Вы загружаете каталог в Emacs, который показывает его в управляемом режиме. Используя мое решение, вы вводите один ключ 'c', который открывает оболочку с уникальным именем и закрывает буфер dired.
- person Oleg Pavliv; 08.11.2011
Я получаю: Значение символа как переменной недействительно: dired-mode-map
- person Marius Hofert; 09.11.2011
Вам нужно добавить (требуется 'dired)
- person Oleg Pavliv; 09.11.2011
Работает как шарм, спасибо :-) Итак, решение: 1) C-x d 2) перемещаться с помощью a 3) c
- person Marius Hofert; 09.11.2011
Когда вы работаете с навигатором ОС (Проводник для Windows, .. для Mac), вам нужно только открыть каталог в Emacs и нажать 'c'. В противном случае вы можете перейти из dired в Emacs и нажать «c», когда окажетесь в нужном вам каталоге.
- person Oleg Pavliv; 09.11.2011
Есть ли способ выполнить обратное действие, например: 1. Внутри emacs я открыл терминал 2. Я хочу перейти с помощью dired в текущий каталог, открытый в терминале (терминал открыт ВНУТРИ emacs)?
- person micholeodon; 15.02.2020
@micholeodon Я пробовал в своих emacs C-x C-f, и он предлагает текущий каталог, открытый в терминале. Я не думаю, что я что-то изменил в emacs, чтобы иметь такое поведение
- person Oleg Pavliv; 16.02.2020
@OlegPavliv Я пробовал это, и у меня нет предложений. Я использую некоторые пакеты, которые могут перекрывать это поведение: multi-term, helm
- person micholeodon; 18.02.2020
M-x shell
), она запустится в указанном каталоге. Вы также можете запустить команду оболочки после нажатияM-!
, которая запустится в каталоге. - person choroba   schedule 08.11.2011