2010-12-09 24 views
4

Je travaille sur Mac OS X 10.5.8. J'essaie d'apprendre emacs. Je suis très nouveau et aujourd'hui essayé d'entrer des commandes shell à partir d'emacs. J'ai entré pdflatex filename. Cependant, il me donne une erreur disantCommande shell Emacs introuvable

/bin/bash: pdflatex: command not found 

J'ai installé et LATEX pdflatex fonctionne très bien à partir de la ligne de commande dans le terminal.

Je reçois une erreur similaire pour une commande lsd que j'ai définie dans mon fichier .bash_profile. Cela fonctionne bien aussi sur la ligne de commande dans le terminal.

La commande ls fonctionne correctement dans le shell emacs.

Est-ce que quelqu'un a une idée de ce qui pourrait se passer?

Comment faire pour qu'emacs reconnaisse toutes les commandes qui fonctionnent correctement sur la ligne de commande du terminal. Y a-t-il un moyen pour que l'environnement utilisé par emacs shell et la ligne de commande du terminal soit identique? Si oui, y a-t-il une raison pour laquelle vous déconseilleriez de le faire? Je connais très peu de bash et d'emacs.

Merci beaucoup.

Répondre

6

Il est possible que le shell Emacs fonctionne dans un environnement différent de celui que vous avez sur la ligne de commande du terminal. Comparez la sortie de env lorsqu'elle est exécutée dans le shell Emacs et lorsqu'elle est exécutée dans le terminal. Portez une attention particulière aux valeurs de PATH.

+0

Merci! Vous avez raison; le shell Emacs a un environnement différent. J'ai changé le PATH du shell emacs en utilisant 'M-x setenv'. Avec ça pdflatex fonctionne dans emacs shell. Cependant, la commande 'lsd' que j'ai définie dans .bash_profile ne fonctionne pas. Y a-t-il un moyen de rendre l'environnement identique? – Curious2learn

+1

.bash_profile est chargé uniquement pour votre shell de connexion. Si vous souhaitez personnaliser les shells standard (tels que les fenêtres xterm ou les shells Emacs), vous devez placer la personnalisation dans .bashrc à la place. Beaucoup de gens vont .bashrc source de .bash_profile, de sorte que vous obtenez toutes vos personnalisations dans votre shell de connexion, mais seulement ceux dans .bashrc dans vos shells réguliers. – Tyler

+0

@Tyler - Merci pour votre réponse. J'ai ouvert mon fichier .bash_profile et l'ai enregistré en tant que fichier .bashrc. La commande 'lsd', cependant, ne fonctionne toujours pas. – Curious2learn