Emacs, étant "une sorte de système d'exploitation", n'a pas vraiment de répertoire de travail actuel. Donc, ce que vous voyez comme le cwd du processus est en grande partie accidentel et n'est pas vraiment documenté. En regardant le code C d'Emacs, j'ai l'impression qu'il n'y a actuellement aucun moyen de faire ce que vous voulez. Vous pourriez donc M-x report-emacs-buget le demander comme une nouvelle fonctionnalité.
Stefan
1
En supposant que vous êtes sous Linux, vous pouvez forcer le cwd à changer en travaillant au niveau du système d'exploitation, voir unix.stackexchange.com/questions/281994/… pour plus de détails.
TTimo
Réponses:
4
Je pense que la seule façon qu'Emacs propose de contrôler cwdle processus est l' --chdirargument de la ligne de commande. Une fois le processus démarré, il n'y a actuellement aucun moyen de le modifier.
Selon les documents, cd"Faire de DIR le répertoire par défaut du tampon actuel". Je suppose que c'est une valeur par tampon et ne s'appliquerait pas à d'autres tampons existants ou à ceux nouvellement créés.
mojo
@mojo peut-être, mais si vous le faites avec le tampon par défaut lorsque tous vos autres tampons sont fermés, c'est tout ce qui vous reste de toute façon. Donc, c'est toujours assez pratique
Keldon Alleyne
5
C-h f cd:
cdest une fonction Lisp interactive compilée en files.el.
(cd DIR)
Faire DIRdevenir le répertoire par défaut du tampon actuel.
Si votre environnement comprend une CDPATHvariable, essayez chacun de cette liste de répertoires (séparés par des occurrences de
path-separator) lors de la résolution d'un nom de répertoire relatif. Le séparateur de chemin est deux points dans les systèmes GNU et GNU.
Et s'il vous plaît expliquer pourquoi le changement default-directoryne change pas aussi le « répertoire courant » pour vous: (setq default-directory "/my/favorite/dir").
Je veux dire le cwd du processus emacs, qui est une entrée dans le bloc de contrôle de processus, et il peut être facilement vérifié via = lsof -p pid =. Le répertoire = default-directory = est une chose interne à emacs. Pourquoi j'ai besoin de changer le cwd parce que tmux utilise le cwd d'un processus de premier plan comme répertoire de départ d'une nouvelle fenêtre / volet.
FunkyBaby
Je vois. Ensuite, votre question était (et est toujours, pour moi) peu claire. Que signifie changer le répertoire de travail actuel du processus Emacs? Vous voulez le changer après que le processus existe? Plus d'une fois?
Tiré
cela change littéralement le = cwd = des emacs. "Plus d'une fois"? Que veux-tu dire par là. = cwd = n'est pas conçu pour être une chose fixe. En c, homme 2 chdir. En python, os.chdir. Je veux savoir comment faire cela dans elisp (pour emacs).
M-x report-emacs-bug
et le demander comme une nouvelle fonctionnalité.Réponses:
Je pense que la seule façon qu'Emacs propose de contrôler
cwd
le processus est l'--chdir
argument de la ligne de commande. Une fois le processus démarré, il n'y a actuellement aucun moyen de le modifier.la source
M-x cd
Cela devrait résoudre votre problème.
la source
cd
"Faire de DIR le répertoire par défaut du tampon actuel". Je suppose que c'est une valeur par tampon et ne s'appliquerait pas à d'autres tampons existants ou à ceux nouvellement créés.C-h f cd
:Et s'il vous plaît expliquer pourquoi le changement
default-directory
ne change pas aussi le « répertoire courant » pour vous:(setq default-directory "/my/favorite/dir")
.la source