How to change the default directory in emacs?
Solution 1
I kept editing my .emacs file, using
(setq default-directory "~/your/path")
but found that whenever I restarted emacs, it kept defaulting to the 'original' directory.
It turned out the problem was that I had left on the default startup screen (GNU emacs 23). I think that the default welcome screen with the links to the tutorial etc, changes the default directory back to the one where the welcome screen files are to be found. I clicked on the 'customize startup' link, then switched off the welcome screen. Since then, when I open emacs it defaults to the scratch buffer, but the default-directory when I use C-x C-f
is the one I set in the .emacs
file.
Hope that helps someone out there, it was driving me crazy!
Solution 2
If you're in a buffer not attached to a file (like *scratch*
, gnus' buffer...) you can use M-x cd
to change the current directory. Just opening the directory will also do the trick.
In gdb, you can ajso just type cd /where/i/want/to/go
Solution 3
The current working directory is always the location of the current buffer.
One option is to go into shell-mode and then cd to the preferred directory, then anything you open, or run from within that shell-buffer will default to that directory.
Solution 4
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.
Related videos on Youtube
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on September 17, 2022Comments
-
Admin almost 2 years
When I'm using
M-x gdb
when lots of source files are open in emacs, the default directory in emacs is often different with the directory of my working copy to run that file i want to run. It's always painful to type the correct full path of the file which i want to debug. How could I solve this problem? Is there a way to change the current default directory to the working copy of my project?
-
Admin over 13 yearsit seems the directory changes randomly when i use the gdb in emacs, and i cannot get the correct directory.
-
Brian Postow over 13 yearsIt changes within the buffer? like you load a file, it's in directory X, you do some debugging, you load a file, and it's in some other directory Y? Does the program do any CDing itself?
-
Hartmut Pfarr over 7 years
(cd (getenv "HOME"))
instead of(setq ...)
works in my case (Windows 10). See emacs.stackexchange.com/questions/18723/…