Prevenir a mudança automática de default-diretório

votos
15

De acordo com a documentação do Emacs , cada vez que você abrir um arquivo, o Emacs muda default-directorypara o diretório que contém o arquivo.

Então, se o cursor estiver em que tampão e você (por exemplo) começam SLIME, ele usa default-directorycomo o diretório de trabalho atual para lodo. Se você tentar abrir um novo arquivo, ele abre o arquivo com default-directorycomo seu ponto de partida.

Eu quero ser capaz de M-x cdou não cda um diretório, e depois nunca ter Emacs mudar o meu atual diretório de trabalho para qualquer coisa, mas esse diretório até que eu diga o contrário. Eu quero que isso seja global em todos os buffers, de modo que a qualquer momento eu estou fazendo algo envolvendo o diretório de trabalho atual, eu sei o que ele é definido como independentemente de onde meu cursor está no momento. Existe uma maneira de fazer isso?

Publicado 09/12/2008 em 23:31
fonte usuário
Em outras línguas...                            


3 respostas

votos
11

Você pode tentar usar algo como isto:

(add-hook 'find-file-hook
          (lambda ()
            (setq default-directory command-line-default-directory)))
Respondeu 10/12/2008 em 00:50
fonte usuário

votos
4

Outra variante é a de vincular default-diretório para o diretório necessário variáveis diretório-local, por exemplo, no arquivo .dir-locals.el em um de seus diretórios pai para algo como:

((nil . ((default-directory . "~/.emacs.d/"))))
Respondeu 17/12/2008 em 22:59
fonte usuário

votos
1

Este é o melhor que eu vim acima com até agora, com tristeza:

(defun find-file-save-directory ()
    (interactive)
    (setq saved-default-directory default-directory)
    (ido-find-file)
    (setq default-directory saved-default-directory))
(global-set-key "\C-x\C-f" 'find-file-save-directory)

Isso funciona, desde que default-directoryesteja devidamente configurado antes que eu C-x C-f. Vou aceitar a resposta do jurta para mim apontando em uma direção útil.

Respondeu 18/01/2009 em 19:55
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more