Изменение папки по умолчанию в Emacs - PullRequest
102 голосов
/ 13 сентября 2008

Я довольно новичок в Emacs и пытаюсь выяснить, как изменить папку по умолчанию для C-x C-f при запуске. Например, когда я впервые загружаю Emacs и нажимаю C-x C-f , его папкой по умолчанию является C:\emacs\emacs-21.3\bin, но я бы предпочел, чтобы это был рабочий стол. Я считаю, что есть какой-то способ настроить файл .emacs, чтобы сделать это, но я все еще не уверен, что это такое.

Обновление: я нашел три решения проблемы, но я считаю, что решение 3 - только для Windows.

  • Решение 1: Добавить (cd "C:/Users/Name/Desktop") в файл .emacs

  • Решение 2. Добавьте (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/") в файл .emacs

  • Решение 3: Щелкните правой кнопкой мыши по ярлыку Emacs, выберите свойства и измените начальное поле в нужном каталоге.

Ответы [ 11 ]

77 голосов
/ 13 сентября 2008

Вы не сказали этого, но похоже, что вы запускаете Emacs из ярлыка Windows.

Каталог, который вы видите с помощью c-x c-f, это cwd, в терминах Emacs, default-directory (переменная).

Когда вы запускаете Emacs с помощью ярлыка MS Windows, default-directory изначально является папкой (каталогом), указанной в поле «Начать с» свойств ярлыка. Щелкните правой кнопкой мыши ярлык, выберите Properties и введите путь к рабочему столу в поле Start In.

Если вы используете Emacs из командной строки, default-directory запускается как каталог, в котором вы запустили Emacs (cwd).

Этот подход лучше, чем редактирование файла .emacs, так как он позволяет вам иметь более одного ярлыка с более чем одним начальным каталогом, и он позволяет вам иметь нормальное поведение командной строки Emacs, если вам это нужно.

CWD = текущий рабочий каталог = PWD = текущий рабочий каталог . Это имеет гораздо больше смысла в командной строке, чем в графическом интерфейсе.

47 голосов
/ 15 сентября 2008

Я думаю, что строка, которую вы должны добавить к вашему .emacs - это

(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/" )

Emacs запустится на вашем рабочем столе таким образом, если у вас нет открытого файла. В противном случае он обычно начинается в том же каталоге, что и файл в текущем буфере.

26 голосов
/ 20 мая 2010

Вы можете ввести команду 'cd' emacs. (M-x cd), чтобы изменить папку по умолчанию как одну.

24 голосов
/ 13 сентября 2008

Я положил

(cd "c:/cvsroot/")

в моем .emacs, и он сделал свою работу

6 голосов
/ 13 сентября 2008

Папка по умолчанию фактически совпадает с текущей рабочей папкой для буфера, т.е. она может отличаться для каждого файла, с которым вы работаете. Скажем, файл, с которым вы работаете, находится в C:\dir_a, тогда рабочий каталог для этого буфера по умолчанию будет C:\dir_a. Вы можете изменить это с помощью M-x cd и ввести любой каталог, который вы хотите использовать по умолчанию (и по умолчанию я имею в виду тот, который будет отображаться при выполнении C-x C-f).

Если вы запустите emacs без открытия файла, вы получите открытый буфер *scratch*. Если вы запустили emacs из ярлыка Windows, рабочий каталог будет таким же, как указано в свойствах ярлыка. Если вы запустили его из командной строки, это будет каталог, откуда вы его запустили. Вы по-прежнему можете изменить этот каталог по умолчанию с помощью M-x cd, также из буфера *scratch*.

Наконец, вы можете сделать, как предлагает Вадим, и поставить

(cd "c:/dir_a/")

в вашем файле .emacs, чтобы сделать этот каталог по умолчанию, независимо от того, как вы запускаете emacs.

4 голосов
/ 02 марта 2009

Я использую emacs 22.2.1 под Windows XP, и мне помогли ответы выше, чтобы получить ответ в минибуфере, который я хочу, на команду C-x C-f. Изначально я получал "Найти файл: C: \ Program Files \ emacs \ bin /", как Антон. У меня есть ДОМОЙ, установленной в "C: \ Documents and settings \ ИМЯ ПОЛЬЗОВАТЕЛЯ \ Мои документы". Ответ на C-x C-f, который я хочу найти в минибуфере: «Найти файл: ~ /». Добавив (setq default-directory "C: / Documents and Settings / ИМЯ ПОЛЬЗОВАТЕЛЯ / Мои документы") в мой файл .emacs, я смог получить ответ "Найти файл: C: \ Documents and settings \ ИМЯ ПОЛЬЗОВАТЕЛЯ \ Мои документы / ", что функционально аналогично" Найти файл: ~ / ". Однако я заметил еще один момент. «Настройка Emacs» в «Опции» позволила мне запретить запуск экрана. Теперь, когда я открываю emacs, я немедленно отправляюсь в рабочий буфер. Когда я набираю C-x C-f в чистом буфере, я получаю точный ответ, который хочу.

4 голосов
/ 13 сентября 2008

Поскольку вы работаете в Windows, вы можете сделать это с помощью ярлыка.

Создать ярлык для C:\emacs\emacs-21.3\bin\runemacs.exe. Отредактируйте свойства ярлыка и измените значение Start In: на то, что вы хотите, чтобы ваш каталог по умолчанию был.

1 голос
/ 21 мая 2010

Чтобы изменить каталог по умолчанию на DESKTOP в Dired и shell, поместите его в ~ / .emacs:

;; Это работает для Windows XP.
(setq default-directory (concat "C: \ Documents and Settings \ MY_ACCOUNT \ DESKTOP \"))

1 голос
/ 19 мая 2010

Я добавил к своему ярлыку (в Gnome, Linux) праматер, представляющий собой пустое фиктивное имя файла, и я указываю каталог. Так как мой emacs по умолчанию "home", я просто говорю:

/ Desktop / blank_file

и открывается файл с именем blank_file

Это также перемещает текущий рабочий каталог для этого сеанса emacs на рабочий стол.

Если мне удастся поместить материал в "blank_file", то сохраните его, конечно, я сохранил этот материал. Это может быть досадно или хорошо, в зависимости!

0 голосов
/ 22 июля 2016

Поскольку наиболее раздражает то, что Windows Emacs выводит вас в system32, когда вы просто используете ярлык, но хотите, чтобы каждый другой случай работал, просто используйте немного elisp ...

(когда (строка <каталог по умолчанию <"C: \ WINDOWS \ system32") (каталог по умолчанию "~ /" setq)) </p>

Так что он будет по умолчанию только для вашего домашнего каталога, когда вы окажетесь в системе. Единственный недостаток - если вы действительно хотите запустить emacs в system32 ...

...