Изменение папки по умолчанию в Emacs

Я новичок в 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, ударите свойства и измените начало в поле на нужный каталог.

Ответ 1

Вы так не сказали, но похоже, что вы запускаете 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= представляет рабочий каталог. Это намного больше смысла в командной строке, чем в графическом интерфейсе.

Ответ 2

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

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

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

Ответ 3

Я положил

(cd "c:/cvsroot/")

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

Ответ 4

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

Ответ 5

Папка по умолчанию на самом деле такая же, как текущая рабочая папка для буфера, то есть она может быть различной для каждого файла, с которым вы работаете. Скажем, что файл, с которым вы работаете, находится в 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.

Ответ 6

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

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

Ответ 7

Я использую emacs 22.2.1 в Windows XP, и мне помогли ответы выше, чтобы получить ответ в минибуфере, который я хочу использовать для команды C-x C-f. Первоначально я получал "Найти файл: C:\Program Files\emacs\bin/", как Антон. У меня есть HOME для "C:\Documents and Settings\USER NAME\My Documents". Ответ на C-x C-f, который я хочу в минибуфере, - "Найти файл: ~/". Добавив (setq default-directory "C:/Documents and Settings/USER NAME/My Documents" ) в мой файл .emacs, я смог получить ответ "Найти файл: C:\Documents and Settings\USER NAME\My Documents/", который функционально совпадает с "Find file: ~/". Однако я заметил еще один момент. "Настройка Emacs" в разделе "Параметры" позволила мне заблокировать экран запуска. Теперь, когда я открываю emacs, я немедленно перехожу к буферу нуля. Когда я набираю C-x C-f в буфере нуля, я получаю точный ответ, который я хочу.

Ответ 8

load-path не является переменной, которую необходимо установить. Это говорит emacs, где искать, когда вы загружаете библиотеки elisp.

Ответ 10

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

/Desktop/blank_file

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

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

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

Ответ 11

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

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

Ответ 12

В Windows 8 он работает, чтобы создать ярлык на рабочем столе и изменить свойство "Начать In:" для ярлыка.

Теперь я запустил программу emacs-23.3\bin\addpm.exe, как рекомендовано, и экран Windows-8 (это ужасное изобретение от Microsoft) появился значок-ссылка на Emacs. Но там вам нужно снова изменить свойство "Начать In". (Он отличается от такового на рабочем столе). Просто щелкните правой кнопкой мыши, выберите в нижней строке "Открыть расположение файла" (или аналогичный, я сделал это на своем языке), и вы попали в папку с новым ярлыком, в котором вы можете (также) изменить свойство "Начать In:".

Немного, но на самом деле очень просто.

Ответ 13

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

(когда (string < "C:\WINDOWS\system32" default-directory) (setq default-directory "~/" ))

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