How to change the default directory in emacs?

9,159

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.

Share:
9,159

Related videos on Youtube

Admin
Author by

Admin

Updated on September 17, 2022

Comments

  • Admin
    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
    Admin over 13 years
    it seems the directory changes randomly when i use the gdb in emacs, and i cannot get the correct directory.
  • Brian Postow
    Brian Postow over 13 years
    It 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
    Hartmut Pfarr over 7 years
    (cd (getenv "HOME")) instead of (setq ...) works in my case (Windows 10). See emacs.stackexchange.com/questions/18723/…