Emacs shell command not found
Je travaille sur Mac OS X 10.5.8. Je suis en train d'apprendre emacs. Je suis très nouveau pour elle, et aujourd'hui a essayé d'entrer des commandes shell à partir de l'intérieur d'emacs. Je suis entré dans pdflatex filename
. Cependant, il me donne un message d'erreur indiquant
/bin/bash: pdflatex: command not found
J'ai LaTeX installé et pdflatex fonctionne très bien à partir de la ligne de commande dans le terminal.
J'obtiens une erreur similaire pour une commande lsd
que j'ai définie dans mon .bash_profile
fichier. Cela fonctionne très bien aussi sur la ligne de commande dans le terminal.
La commande ls
fonctionne très bien dans emacs shell.
Quelqu'un a une idée de ce qui se passe.
Comment je peux obtenir emacs pour reconnaître toutes les commandes qui fonctionnent bien sur la ligne de commande dans le terminal.
Est-il de toute façon je peux faire de l'environnement utilisé par emacs shell et le terminal de ligne de commande identiques?
Si oui, est-il une raison quelconque vous déconseille de le faire? Je connais très peu de fois bash et emacs.
Merci beaucoup.
OriginalL'auteur Curious2learn | 2010-12-09
Vous devez vous connecter pour publier un commentaire.
Il est possible que l'Emacs de la coquille est de travailler dans un environnement différent de celui que vous avez sur le terminal de ligne de commande. Comparer la sortie de
env
lorsqu'il est exécuté à l'intérieur d'Emacs shell et quand exécuter dans le terminal. Accorder une attention particulière aux valeurs dePATH
.M-x setenv
. Avec pdflatex travaille dans emacs shell. Toutefois, la commandelsd
que j'ai défini .bash_profile ne fonctionne pas. Est il possible que je peux faire de l'environnement identique..bash_profile est chargé de votre shell de connexion. Si vous souhaitez personnaliser régulièrement des coquilles (comme xterm windows, ou Emacs coquillages), vous avez besoin de mettre de la personnalisation .bashrc à la place. Beaucoup de gens vont à la source .bashrc .bash_profile, de sorte que vous obtenez toutes vos personnalisations dans votre shell de connexion, mais seulement ceux dans .bashrc dans votre coquille.
Merci pour votre réponse. J'ai ouvert ma .bash_profile fichier et enregistrez-le comme un .bashrc fichier. Le
lsd
de commande, cependant, ne fonctionne toujours pas.Étrange. .bashrc est chargé automatiquement pour moi à chaque fois que je lance emacs d'une coquille. Peut-être essayer un peu de débogage lignes .bashrc, ajouter: echo "bashrc chargé" en .bash_profile, ajouter: echo "bashprofile chargé", puis dans emacs appeler un nouveau shell: M-x shell. Si vous voyez l'un ou les deux de l'écho des lignes, vous saurez ce que emacs est la lecture à chaque fois que vous ouvrez un nouveau shell.
Emacs commande shell (M-!) n'est pas interactif par défaut bash ne charge pas votre .bashrc. Vous pouvez le modifier en ajoutant
(setq shell-command-switch "-ic")
pour votre .emacs fichier init. L'-je dit bash pour être interactif, ce qui permet de le charger de la ~/.bashrc fichier. C'est le travail facile, mais il y a peut-être des choses dans votre ~/.bashrc que vous n'avez pas forcément envie lors de l'exécution rapide des commandes du shell. Dans ce cas, il peut être préférable de définir la BASH_ENV variable d'environnement, de sorte que vous avez un contrôle plus précis de ce qui se passe.OriginalL'auteur High Performance Mark
De l'aide pour
shell
commande:De sorte que vous pouvez simplement créer un lien symbolique
~/.emacs_bash
(pour bash) ou~/.emacs_zsh
(zsh). Sinon définir la variableexplicit-shell-file-name
à point à~/.bash_profile
ou~/.bashrc
ou~/.zshrc
selon que vous utilisez ou vous pouvez jouer quiESHELL
variable d'environnement.OriginalL'auteur Adam Faryna