Emacs, ser "um tipo de sistema operacional" não tem realmente um único diretório de trabalho atual. Portanto, o que você vê como o cwd do processo é em grande parte acidental e não está realmente documentado. Olhando para o código C do Emacs, tenho a impressão de que atualmente não há como fazer o que você deseja. Você pode, portanto, M-x report-emacs-bugsolicitá-lo como um novo recurso.
Stefan
1
Supondo que você esteja no Linux, você pode forçar a alteração do cwd trabalhando no nível do sistema operacional; consulte unix.stackexchange.com/questions/281994/… para obter detalhes.
TTimo 25/09
Respostas:
4
Eu acho que a única maneira que o Emacs oferece para controlar cwdo processo é o --chdirargumento da linha de comando. Depois que o processo é iniciado, atualmente não há como modificá-lo.
De acordo com os documentos, cd"Torne o DIR o diretório padrão do buffer atual". Eu presumiria que é um valor por buffer e não se aplicaria a outros buffers existentes ou aos recém-criados.
Macaco
@mojo talvez, mas se você fizer isso com o buffer padrão quando todos os seus outros buffers estiverem fechados, é só isso que resta. Por isso, ainda é bastante prático
Keldon Alleyne
5
C-h f cd:
cdé uma função Lisp compilada interativa em files.el.
(cd DIR)
Tornar DIRo diretório padrão do buffer atual.
Se o seu ambiente incluir uma CDPATHvariável, tente cada uma dessa lista de diretórios (separados por ocorrências de
path-separator) ao resolver um nome de diretório relativo. O separador de caminho é dois pontos nos sistemas GNU e GNU-like.
E por favor, explique por que mudar default-directorynão também mudar o "diretório atual" para você: (setq default-directory "/my/favorite/dir").
Refiro-me ao cwd do processo emacs, que é uma entrada no bloco de controle do processo, e pode ser facilmente verificado via = lsof -p pid =. O = default-directory = é uma coisa interna do emacs. Por que eu preciso alterar o cwd é porque o tmux usa o cwd de um processo em primeiro plano como o diretório inicial de uma nova janela / painel.
precisa saber é o seguinte
Entendo. Então sua pergunta não era clara (e ainda é para mim). O que significa alterar o diretório de trabalho atual do processo Emacs? Deseja alterá-lo após o processo existir? Mais de uma vez?
Tirou
está literalmente mudando o = cwd = do emacs. "Mais de uma vez"? O que você quer dizer com isso. = cwd = não foi projetado para ser uma coisa fixa. Em c, homem 2 chdir. Em python, os.chdir. Eu quero saber como fazer isso no elisp (para emacs).
M-x report-emacs-bug
solicitá-lo como um novo recurso.Respostas:
Eu acho que a única maneira que o Emacs oferece para controlar
cwd
o processo é o--chdir
argumento da linha de comando. Depois que o processo é iniciado, atualmente não há como modificá-lo.fonte
M-x cd
Isso deve resolver seu problema.
fonte
cd
"Torne o DIR o diretório padrão do buffer atual". Eu presumiria que é um valor por buffer e não se aplicaria a outros buffers existentes ou aos recém-criados.C-h f cd
:E por favor, explique por que mudar
default-directory
não também mudar o "diretório atual" para você:(setq default-directory "/my/favorite/dir")
.fonte