2010-07-29 2 views
4

Как объясняется в here, класть (setq default-directory «~/Desktop/mag») в .emacs должен изменить каталог по умолчанию.Изменить каталог по умолчанию emacs на «cocoa emacs»

Когда я делаю это с emacs на моем mac, это не работает. C-x C-f все еще показывает ~/not ~/Desktop/mag.

(кд «Пользователи/smcho/Desktop/МАГ») также не дает мне эту ошибку - Ошибка: Нет такого каталога найденную с помощью переменной окружения CDPATH

Что случилось с ними?

+0

возможно ли вам нужен/на передней части пути в '(кд "/ Users/smcho/Desktop/Mag")'? (Нет мака на кончиках пальцев, чтобы проверить). Хотя я не думаю, что это будет иметь эффект, который вы действительно хотите. –

ответ

15

Каталог, отображаемый в приглашении для C-x C-f ('find-file'), поступает из значения каталога по умолчанию, который является локальной-буферной переменной. При первом запуске Emacs отображается начальный буфер GNU Emacs. Этот каталог по умолчанию для этого буфера устанавливается из каталога командной строки переменной-default.

Итак, попробуйте следующее:

(setq command-line-default-directory "~/Desktop/mag") 
+0

Это не работает. Но Трей делает. На самом деле я думал, что есть более простая версия, чем предлагаемая им. – Matt

+0

Большое спасибо. Он отлично работает в Ubuntu 11.04. –

+0

@ Jim Blandy: Ваше объяснение было прекрасным. Мне было интересно, почему '(cd )' не работает. Благодаря! – Avery

6

Прямой вперед ответ на ваш вопрос:

(setq-default default-directory "~/Desktop/mag") 

Чтение документации для переменной (Ch v по умолчанию каталог-RET) вы увидите:

Automatically becomes buffer-local when set in any fashion. This variable is safe as a file local variable if its value satisfies the predicate `stringp'.

Это сказал, открывая файл автоматически устанавливает default-directory на путь файла ...

Итак, если вы всегда хотите find-file начать в этом каталоге, вы можете использовать это:

(global-set-key (kbd "C-x C-f") 'my-find-file) 
(defun my-find-file() 
    "force a starting path" 
    (interactive) 
    (let ((default-directory "~/scratch/")) 
    (call-interactively 'find-file))) 

Этот вопрос может быть дубликатом Preventing automatic change of default-directory. Хотя это трудно сказать.

+0

Я добавил код в .emacs, но C-c C-f показывает мне ~/not ~/Desktop/mag. – prosseek

+0

@prosseek Вы * всегда * хотите 'C-c C-f' начинать с' ~/Desktop/mag'? Это немного другое, и я думаю, что уже ответил. Я уточню свой ответ. –

+0

Прошу прощения, я в замешательстве. C-x C-f был ключом к тому, что я намеревался использовать для открытия «~/Desktop/mag», но все в порядке, что я нашел способ открыть его с помощью C-c C-f. – prosseek

3

В дополнение к нот выше относительно default-directory, я должен был также предотвратить Emacs всплеск экрана от начала для того, чтобы последующие команды, как dired на самом деле показывают их буфер при вызове от .emacs при запуске:

(setq inhibit-splash-screen t) 
Смежные вопросы