Alterando a pasta padrão no Emacs

106

Sou bastante novo no Emacs e estou tentando descobrir como alterar a pasta padrão C-x C-fna inicialização. Por exemplo, quando carrego o Emacs pela primeira vez e acerto C-x C-fsua pasta padrão é C:\emacs\emacs-21.3\bin, mas prefiro que seja a área de trabalho. Acredito que haja alguma maneira de personalizar o .emacsarquivo para fazer isso, mas ainda não tenho certeza do que é.

Atualização: Existem três soluções para o problema que descobri que funcionam, no entanto, acredito que a solução 3 é apenas para Windows.

  • Solução 1: Adicionar (cd "C:/Users/Name/Desktop")ao .emacsarquivo

  • Solução 2: Adicionar (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")ao .emacsarquivo

  • Solução 3: Clique com o botão direito no atalho do Emacs, clique nas propriedades e altere o campo start in para o diretório desejado.

Anton
fonte

Respostas:

84

Você não disse isso, mas parece que você está iniciando o Emacs de um atalho do Windows.

O diretório que você vê com cx cf é o cwd, em termos do Emacs, o default-directory(uma variável).

Quando você inicia o Emacs usando um atalho do MS Windows, default-directoryé inicialmente a pasta (diretório) especificada no campo "Iniciar em" das propriedades do atalho. Clique com o botão direito no atalho, selecione Propertiese digite o caminho para sua área de trabalho no Start Incampo.

Se você estiver usando o Emacs da linha de comando, default-directorycomece como o diretório onde você iniciou o Emacs (o cwd).

Esta abordagem é melhor do que editar seu arquivo .emacs, uma vez que permitirá que você tenha mais de um atalho com mais de um diretório inicial, e permite que você tenha o comportamento normal de linha de comando do Emacs, se necessário.

CWD = diretório de trabalho atual = PWD = diretório de trabalho atual . Faz muito mais sentido na linha de comando do que em uma GUI.

Bart
fonte
Sim, estou usando o emacs no windows.
Anton,
5
Isso também funciona no MacOS. Eu adicionei isso ao meu .emacs: (setq default-directory (concat (getenv "HOME") "/"))
vy32
E se você quiser que o Emacs comece no Dired desse diretório então, além de colocá-lo no Start Incampo, adicione-o no final do Targetcampo, após um ou mais espaços, colocando-o entre aspas ( "). Por exemplo: "d:\path\to\the\folder".
Drew
48

Acho que a linha que você precisa adicionar ao seu .emacs é

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

O Emacs iniciará em sua área de trabalho dessa forma, a menos que você tenha um arquivo aberto. Normalmente, ele iniciará no mesmo diretório do arquivo em seu buffer atual.

Michael
fonte
26

Você pode digitar o comando 'cd' emacs. (CD Mx) para alterar a pasta padrão como uma pasta.

Chris Huang-Leaver
fonte
24

Eu coloquei

(cd "c:/cvsroot/")

no meu .emacs e funcionou

vava
fonte
6

A pasta padrão é na verdade a mesma que a pasta de trabalho atual do buffer, ou seja, pode ser diferente para cada arquivo com o qual você trabalhar. Digamos que o arquivo com o qual você está trabalhando esteja localizado C:\dir_a, então o diretório de trabalho para esse buffer estará, por padrão C:\dir_a. Você pode alterar isso com M-x cde digitar qualquer diretório que você gostaria que fosse o padrão (e por padrão, quero dizer aquele que aparecerá quando você fizer isso C-x C-f).

Se você iniciar o emacs sem abrir um arquivo, o *scratch*buffer ficará aberto. Se você iniciou o emacs a partir de um atalho do Windows, o diretório de trabalho será o mesmo que o especificado nas propriedades do atalho. Se você o iniciou a partir da linha de comando, será o diretório de onde você o iniciou. Você ainda pode alterar este diretório padrão com M-x cd, também a partir do *scratch*buffer.

Finalmente, você pode fazer o que Vadim sugere e colocar

(cd "c:/dir_a/")

em seu .emacsarquivo, para tornar esse diretório o padrão, não importa como você inicia o emacs.

ehdr
fonte
4

Como você está no Windows, pode fazer isso com um atalho.

Crie um atalho para C:\emacs\emacs-21.3\bin\runemacs.exe. Edite as propriedades do atalho e altere o valor de Start In:para ser o que você deseja que seja o diretório padrão.

Dave Webb
fonte
4

Estou usando o emacs 22.2.1 no Windows XP e fui ajudado pelas respostas acima para obter a resposta no minibuffer que desejo ao comando Cx Cf. Inicialmente, eu recebia "Localizar arquivo: C: \ Arquivos de programas \ emacs \ bin /" como Anton. Eu tenho o HOME definido como "C: \ Documentos e configurações \ NOME DO USUÁRIO \ Meus Documentos". A resposta para Cx Cf que desejo no minibuffer é "Find file: ~ /". Adicionando (setq diretório padrão "C: / Documentos e configurações / NOME DO USUÁRIO / Meus documentos") ao meu arquivo .emacs, consegui obter a resposta "Localizar arquivo: C: \ Documentos e configurações \ NOME DO USUÁRIO \ Meus documentos / "que é funcionalmente o mesmo que" Localizar arquivo: ~ / ". No entanto, percebi mais um ponto. "Personalizar Emacs" em "Opções" me permitiu inibir a tela de inicialização. Agora, quando eu abro o emacs, vou imediatamente para o buffer de rascunho. Quando digito Cx Cf no buffer de rascunho, obtenho a resposta exata que desejo.


fonte
+1 por mencionar a inibição da tela de inicialização. Descobri que isso é fundamental no meu sistema Windows 10. Postei minha resposta para a pergunta relacionada stackoverflow.com/a/38435697/823636
Rob_before_edits
1

Eu adicionei ao meu atalho (no Gnome, Linux) um pramater que é um nome de arquivo fictício em branco e eu especifico o diretório. Como o padrão do meu emacs é "home", eu simplesmente digo:

/ Desktop / blank_file

e isso abre um arquivo chamado "blank_file"

Isso também move o diretório de trabalho atual para aquela sessão emacs para a área de trabalho.

Se acontecer de eu colocar algo em "blank_file" então salve-o, é claro, eu tenho esse material salvo. O que pode ser um aborrecimento ou pode ser uma coisa boa, dependendo!

Greg Laden
fonte
1

Para alterar o diretório padrão para DESKTOP em Dired e shell, coloque-o em ~ / .emacs:

;; Isso funciona para o Windows XP.
(setq diretório padrão (concat "C: \ Documents and Settings \ MY_ACCOUNT \ DESKTOP \"))

Adam Faryna
fonte
0

No Windows 8, funciona para criar um atalho na área de trabalho e alterar a propriedade 'Iniciar em:' para o atalho.

Agora, eu executei o programa emacs-23.3 \ bin \ addpm.exe como recomendado, e a tela do Windows 8 (aquela invenção horrenda da Microsoft) apareceu um ícone-link para o Emacs. Mas aí você tem que alterar novamente a propriedade 'Start In'. (É diferente daquele na área de trabalho). Basta clicar com o botão direito, escolher na barra inferior 'Abrir o local do arquivo' (ou semelhante, fiz no meu idioma), e você será levado à pasta com um novo atalho, no qual você também pode (deve) alterar o propriedade 'Iniciar em:'.

Um pouco envolvido, mas na verdade muito fácil.

Tonibat
fonte
0

Já que a coisa mais chata é ter o Windows Emacs despejando você no system32 quando você está apenas usando o atalho, mas quer que todos os outros casos funcionem, apenas use um pouco de elisp ...

(quando (string <"C: \ WINDOWS \ system32" diretório padrão) (setq diretório padrão "~ /"))

Portanto, ele só assumirá como padrão seu diretório inicial quando você entrar no sistema. A única desvantagem é se você realmente deseja iniciar o emacs no system32 ...

Grant BlahaErath
fonte