Alterando a pasta padrão no Emacs
-
09-06-2019 - |
Pergunta
Sou bastante novo no Emacs e tenho tentado descobrir como alterar a pasta padrão do C-x C-f no arranque.Por exemplo, quando carrego o Emacs pela primeira vez e clico C-x C-f sua pasta padrão é C:\emacs\emacs-21.3\bin
, mas prefiro que seja a área de trabalho.Eu acredito que há alguma maneira de personalizar o .emacs
arquivo para fazer isso, mas ainda não tenho certeza do que é.
Atualizar:Existem três soluções para o problema que descobri que funcionam, mas acredito que a solução 3 é apenas para Windows.
Solução 1:Adicionar
(cd "C:/Users/Name/Desktop")
para o.emacs
arquivoSolução 2:Adicionar
(setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")
para o.emacs
arquivoSolução 3:Clique com o botão direito no atalho do Emacs, clique em propriedades e altere o campo iniciar para o diretório desejado.
Solução
Você não disse isso, mas parece que está iniciando o Emacs a partir de um atalho do Windows.
O diretório que você vê com c-x c-f é o cwd, em termos do Emacs, o default-directory
(uma variável).
Quando você inicia o Emacs usando um atalho do MS Windows, o default-directory
é inicialmente a pasta (diretório) especificada no campo "Iniciar em" das propriedades do atalho.Clique com o botão direito no atalho e selecione Properties
, e digite o caminho para sua área de trabalho no campo Start In
campo.
Se você estiver usando o Emacs na linha de comando, default-directory
começa como o diretório onde você iniciou o Emacs (o cwd).
Essa abordagem é melhor do que editar seu arquivo .emacs, pois permitirá que você tenha mais de um atalho com mais de um diretório inicial e permitirá que você tenha o comportamento normal da linha de comando do Emacs, se necessário.
CWD = diretório de trabalho atual = PCD = atual diretório de trabalho.Faz muito mais sentido na linha de comando do que em uma GUI.
Outras dicas
Acho que a linha que você precisa adicionar ao seu .emacs é
(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/" )
O Emacs iniciará na sua área de trabalho dessa forma, a menos que você tenha um arquivo aberto.Caso contrário, ele geralmente começará no mesmo diretório do arquivo em seu buffer atual.
Você pode digitar o comando 'cd' emacs.(M-x cd) para alterar a pasta padrão como única.
eu coloquei
(cd "c:/cvsroot/")
no meu .emacs e funcionou
A pasta padrão é na verdade igual à pasta de trabalho atual do buffer, ou seja,pode ser diferente para cada arquivo com o qual você trabalha.Digamos que o arquivo com o qual você está trabalhando esteja localizado em C:\dir_a
, então o diretório de trabalho desse buffer será, por padrão, C:\dir_a
.Você pode mudar isso com M-x cd
e digite 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, você terminará com o *scratch*
buffer aberto.Se você iniciou o emacs a partir de um atalho do Windows, o diretório de trabalho será o mesmo especificado nas propriedades do atalho.Se você o iniciou na 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 do *scratch*
amortecedor.
Finalmente, você pode fazer o que Vadim sugere e colocar
(cd "c:/dir_a/")
na tua .emacs
arquivo, para tornar esse diretório o padrão, não importa como você inicia o emacs.
Como você está no Windows, você 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 seu diretório padrão seja.
Estou usando o emacs 22.2.1 no Windows XP e fui ajudado pelas respostas acima para obter a resposta no minibuffer que desejo para o comando Cx Cf.Inicialmente, eu estava recebendo "Find File:C:\Arquivos de Programas\emacs\bin/" como Anton.Eu tenho o HOME definido como "C:\Documents and settings OME DE USUÁRIO\Meus Documentos".A resposta para C-x C-f que desejo no minibuffer é "Localizar arquivo:~/".Ao adicionar (setq default-directory "C:/Documents and Settings/USER NAME/My Documents") ao meu arquivo .emacs, consegui obter a resposta "Find file:C:\Documents and settings OME DE USUÁRIO\Meus Documentos/" que é funcionalmente igual a "Localizar arquivo:~/".No entanto, notei mais um ponto."Personalizar Emacs" em "Opções" me permitiu inibir a tela de inicialização.Agora, quando abro o emacs, vou imediatamente para o buffer temporário.Quando digito C-x C-f no buffer de rascunho, obtenho a resposta exata que desejo.
Adicionei ao meu atalho (no Gnome, Linux) um pramater que é um nome de arquivo fictício em branco e especifico o diretório.Como o padrão do meu emacs é "home", simplesmente digo:
/Desktop/arquivo_em branco
e isso abre um arquivo chamado "blank_file"
Isso também move o diretório de trabalho atual da sessão do emacs para a área de trabalho.
Se acontecer de eu colocar coisas em "blank_file", salve-as, é claro, tenho essas coisas salvas.O que pode ser um aborrecimento ou pode ser uma coisa boa, dependendo!
Para alterar o diretório padrão para DESKTOP no Dired e no shell, coloque isso em seu ~/.emacs:
;;Isso funciona para Windows XP.
(setq diretório padrão (concat "C:\Documents and Settings\MINHA_CONTA\DESKTOP\"))
No Windows 8, funciona para criar um atalho na área de trabalho e alterar a propriedade ‘Iniciar em:’ do atalho.
Agora, executei o programa emacs-23.3\bin\addpm.exe conforme recomendado, e na 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 da área de trabalho).Basta clicar com o botão direito, escolher na barra inferior ‘Abrir o local do arquivo’ (ou similar, fiz isso no meu idioma), e você será levado para a pasta com um novo atalho, no qual você também pode (deve) alterar o propriedade 'Iniciar em:'.
Um pouco complicado, mas na verdade muito fácil.
Já que a coisa mais chata é ter o Windows Emacs despejando você no system32 quando você está apenas usando o atalho, mas deseja que todos os outros casos funcionem, basta usar um pouco de elisp ...
(quando (string< "C:\WINDOWS\system32" diretório padrão) (setq diretório padrão "~/"))
Portanto, o padrão será o seu diretório inicial apenas quando você entrar no sistema.A única desvantagem é se você realmente deseja iniciar o emacs no system32...