Как изменить каталог по умолчанию в Emacs?

5775
Kim

Когда я использую

M-x gdb 

когда в emacs открыто много исходных файлов, каталог по умолчанию в emacs часто отличается от каталога моей рабочей копии для запуска файла, который я хочу запустить. Всегда больно набирать правильный полный путь к файлу, который я хочу отладить. Как я мог решить эту проблему? Есть ли способ изменить текущий каталог по умолчанию на рабочую копию моего проекта?

3

4 ответа на вопрос

12
Ghufran

Я продолжал редактировать мой файл .emacs, используя

(setq default-directory "~/your/path") 

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

Оказалось, проблема в том, что я оставил на экране запуска по умолчанию (GNU emacs 23). Я думаю, что экран приветствия по умолчанию со ссылками на учебник и т. Д. Заменяет каталог по умолчанию обратно на каталог, в котором находятся файлы экрана приветствия. Я нажал на ссылку «настроить запуск», а затем выключил экран приветствия. С тех пор, когда я открываю emacs, он по умолчанию работает с чистым буфером, но каталог по умолчанию, который я использую, C-x C-fявляется тем, который я установил в .emacsфайле.

Надеюсь, что это поможет кому-то там, это сводило меня с ума!

`` `(cd (getenv" HOME "))` `` вместо `` `(setq ...)` `` работает в моем случае (Windows 10). См. Http://emacs.stackexchange.com/questions/18723/setting-default-directory-does-not-change-find-file-directory/18724#18724?newreg=5f82fb84474e4e1ca2ba5dfb9ccd1ee3 Hartmut P. 7 лет назад 2
3
Brian Postow

Текущий рабочий каталог всегда является местоположением текущего буфера.

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

кажется, что каталог меняется случайным образом, когда я использую GDB в Emacs, и я не могу получить правильный каталог. Kim 13 лет назад 0
Это меняется внутри буфера? как вы загружаете файл, он находится в каталоге X, вы делаете некоторую отладку, вы загружаете файл, и он находится в каком-то другом каталоге Y? Программа сама выполняет CDing? Brian Postow 13 лет назад 0
3
Rémi

Если вы находитесь в буфере, не прикрепленном к файлу (например *scratch*, в буфере gnus ...), вы можете использовать M-x cdдля изменения текущего каталога. Простое открытие каталога также поможет.

В GDB вы можете просто ввести ajso cd /where/i/want/to/go

1
bigstone1998

Normally, The current working directory is always the location of the current buffer. And gdb will use this directory automatically.

But I indeed had distressed experience that when M-x gdb, it always entered the ~ directory, and complained the target file couldn't be found.

Finally, I found this is caused by the buffer was changed unintended, and may be backed up. I realized this when I killed this buffer and reopened it. After kill and reopen the buffer, M-x gdb works well again.

From my experience, when this happens, exit emacs and restart it can't help fixing this. Just try killing the buffer and reopen the file.

Похожие вопросы