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

107

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

Антон
источник

Ответы:

84

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

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

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

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

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

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

Барт
источник
Да, я использую emacs в Windows.
Антон
5
Это работает и на MacOS. Я добавил это в свой .emacs: (setq default-directory (concat (getenv "HOME") "/"))
vy32
И если вы хотите, чтобы Emacs запускался в Dired этого каталога, то помимо помещения его в Start In поле, добавьте его в конец Targetполя после одного или нескольких пробелов, заключив его в двойные кавычки ( "). Например: "d:\path\to\the\folder".
Дрю
49

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

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

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

Майкл
источник
26

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

Крис Хуанг-Ливер
источник
24

Я положил

(cd "c:/cvsroot/")

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

вава
источник
6

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

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

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

Дэйв Уэбб
источник
4

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


источник
+1 за упоминание о запрете запуска экрана. Я обнаружил, что это ключевой момент в моей системе Windows 10. Я опубликовал свой ответ на связанный вопрос stackoverflow.com/a/38435697/823636
Rob_before_edits
1

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

/ Рабочий стол / blank_file

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

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

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

Грег Ладен
источник
1

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

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

Адам Фарина
источник
0

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

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

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

Тонибат
источник
0

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

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

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

Грант БлахаЭрат
источник