2011-06-24 4 views
11

J'utilise emacs sur windows. Je voudrais savoir comment changer le chemin "Find File:" par défaut dans emacs. Par exemple, lorsque nous pressons "Cx Cf" je veux que le chemin du fichier par défaut pointe vers mon répertoire Documents et non "c: \ emacs - ** \ poubelle/".emacs "Trouver le fichier:" chemin par défaut

Répondre

0

Vous devez redéfinir la variable d'environnement HOME dans votre nouveau répertoire par défaut.

+0

Non. 'HOME' est utilisé pour beaucoup d'autres choses que votre répertoire par défaut d'Emacs. Le fait de jouer avec cela fera probablement que beaucoup de choses se comporteront de façon imprévisible. -1 –

+1

Commentaire valide. Mais comme Emacs semble utiliser son propre répertoire maintenant, cela signifie que la variable HOME n'est pas encore définie. Le définir sur 'Mes documents' ne fera pas de mal. Je n'aurais pas dit que s'il était sur Linux – Giann

+0

Eh bien, je vais admettre que je ne sais pas comment les choses sont sur Windows. –

16

Dans un tampon qui visite un fichier, le chemin par défaut que vous voyez lorsque vous visitez un nouveau fichier (C-x C-f) est le répertoire qui contient le fichier du tampon en cours.

Pour remplacer la valeur "c: \ emacs - ** \ bin /" avec quelque chose de plus sensible, la variable default-directory dans votre fichier .emacs:

(setq default-directory "/path/to/documents/directory/") 

Notez que la valeur de chemin d'accès doit fin avec une barre oblique (ou une barre oblique inverse sur Windows).

Cependant, vous pouvez également envisager de modifier la valeur de votre variable d'environnement HOME, comme par défaut, c'est ce que les default-directory variables points à au démarrage (sauf jeu à une autre valeur comme indiqué ci-dessus).

+0

Vous devez toujours utiliser des barres obliques dans les chemins d'accès aux fichiers dans NTEmacs. Il sait quoi faire. – phils

+0

@phils: Je suppose que la raison de préférer les barres obliques inversées est que les barres obliques inverses sont aussi le caractère d'échappement dans les chaînes, donc vous devez toujours écrire des noms de chemin comme ceci: "c: \\ foo \\ bar \\" qui devient plutôt moche. – Thomas

+1

Cette réponse ne fonctionne pas pour moi (et d'autres). Voir la discussion sous la réponse @loudandclear. –

1

Cela doit le faire:

(global-set-key (kbd "C-x C-f") (lambda() (interactive) 
            (cd "somePathHere") 
            (call-interactively 'find-file))) 

(remplacer somePathHere avec le chemin de votre répertoire de documents)

+0

@sabotero quelqu'un a fait -1 parce que c'est une solution pauvre, inélégante. Emacs a des mécanismes pour répondre à la question OPs, default-directory. Remapper des clés sur une nouvelle fonction n'est PAS le moyen d'aborder cette tâche simple. –

+1

Ceci est une réponse sensée. L'OP veut probablement que 'C-x C-f' commence toujours dans un certain répertoire. Définir 'default-directory' ne le fera * pas *, car il s'agit d'un tampon local qui changera dès que vous lirez ou écrivez dans un répertoire différent. Vous devez ajouter des hooks à 'find-file',' dired' et à tout ce qui le définit. Et changer un paramètre dans chaque tampon n'est pas une manière "élégante" de changer le comportement d'un raccourci! Si vous voulez qu'un raccourci clavier fasse quelque chose de différent, le relier à un wrapper personnalisé est simple, infaillible et n'interférera avec rien d'autre. – pyrocrasty

+0

Bien que, si vous liez une fonction à une clé, vous devez au moins lui donner un nom. Vous pouvez utiliser 'defun' inline si vous le souhaitez (il est préférable de le définir au niveau supérieur, afin que le système d'aide puisse trouver la définition). – pyrocrasty

3

variable 'default-directory' est le répertoire "en cours" (pour le tampon courant). La commande 'cd' change de répertoire et la consultation de n'importe quel fichier ou répertoire (par exemple avec Dired) a changé le 'répertoire par défaut' pour ce tampon.

Vous pouvez démarrer Emacs dans un répertoire donné en passant ce répertoire sur la ligne de commande. Vous pouvez utiliser un raccourci Windows pour le faire aussi. Et vous pouvez avoir le raccourci visiter ce répertoire dans Dired.

Exemple raccourci info:

Cible: C: \ Emacs \ bin \ runemacs.exe "C: \ my \ préféré \ dossier"

Démarrer dans: C: \ my \ favorite \ folder

Questions connexes