Comment lancer GUI Emacs à partir de la ligne de commande dans OSX?
J'ai téléchargé et installé à partir Emacs http://emacsformacosx.com/ .
J'accepterai une réponse remplissant tous les critères suivants:
- La fenêtre emacs s'ouvre devant ma fenêtre de terminal.
- Taper "emacs" lance une fenêtre Emacs GUI. La recherche de fichiers dans cette fenêtre se fera par défaut dans le répertoire à partir duquel j'ai démarré Emacs.
- Taper "emacs foo.txt" quand foo.txt existe lance une fenêtre GUI Emacs avec foo.txt chargé.
- Taper "emacs foo.txt" quand foo.txt n'existe pas lance une fenêtre GUI Emacs avec un tampon de texte vide nommé "foo.txt". Faire ^ X ^ S dans ce tampon sauvegardera foo.txt dans le répertoire d'où j'ai démarré Emacs.
macos
emacs
command-line
Johan Walles
la source
la source
emacsclient -c -a "" "$@"
commandRéponses:
Appelez le script suivant "emacs" et placez-le
PATH
quelque part:Cela couvre les n ° 2, 3 et 4.
Pour le n ° 1, mettez ceci quelque part dans votre fichier .emacs:
Le site emacsformacosx.com a maintenant une page How-To , d'où provient l'extrait de code supérieur. Il y a plus d'informations là-bas sur l'exécution
emacsclient
et le raccordement d'Emacsgit mergetool
.la source
~/foo
et quebar.txt
je veux ouvrir, je tapegmacs bar.txt
mais cela crée un nouveau fichier au~/bar.txt
lieu de s'ouvrir~foo/bar.txt
. Est-ce que je fais quelque chose de mal?Dans votre shell, alias la commande 'emacs' pour pointer vers l'application OSX emacs
Dans mon shell (exécutant le bash par défaut), j'ai ce qui suit (dans mon .bashrc)
Ensuite, la saisie d'emacs sur la ligne de commande démarre l'application emacs.
Je vous recommanderais cependant d'ouvrir une copie d'emacs et de la maintenir opérationnelle. Si c'est le cas, et que vous souhaitez charger un fichier dans une copie existante d'emacs, vous pouvez utiliser emacsclient en plaçant ce qui suit dans votre .bashrc:
Ajoutez ensuite ce qui suit à votre fichier .emacs pour démarrer le serveur emacs (qui reçoit les appels emacsclient)
Ensuite, vous pouvez taper
pour charger une copie de .bashrc dans une session emacs existante!
la source
Cela améliore la réponse de David Caldwell en démarrant Emacs en arrière-plan:
Comme indiqué dans l'autre réponse, cela couvre les n ° 2, 3 et 4. Pour # 1, mettre quelque part dans votre fichier .emacs:
(x-focus-frame nil)
.Notez que ce qui suit ne fonctionne pas pour moi - il ne démarre pas Emacs dans un répertoire spécifié sur la ligne de commande (par exemple
emacs .
)la source
Je suppose que vous non plus:
Si tel est le cas, je pense que cela satisfait aux quatre critères d'origine, plus un de plus:
il s'ouvrira toujours au premier plan (avec x-focus-frame).
Cela ouvrira une fenêtre emacs existante en mode dired.
Si emacs est déjà en cours d'exécution et a un serveur, il s'ouvrira dans la fenêtre existante et viendra au premier plan.
Correct.
Un extra:
Le contrôle revient à la session de terminal immédiatement après avoir tapé la commande.
~ / bin / emacs
la source
Sur Mountain Lion, j'utilise le port de Yamamoto Mitsuharu https://github.com/railwaycat/emacs-mac-port avec l'alias suivant:
et il répond à tous vos critères.
la source
Solution simple ...
De nombreuses solutions très complexes à ce problème sont publiées ici. C'est juste parce que cela semble non trivial.
Cependant, cette solution fonctionne très bien pour moi.
Usage
Découvrons ce qui se passe:
ec
arguments à emacsclient et n'attendez pas (-n
) pour emacs avant de continuer.2> /dev/null
)1
([[ $? == 1 ]]
)la source
Je viens de créer des emacs avec le gestionnaire de paquets homebrew selon ce guide: http://www.emacswiki.org/emacs/EmacsForMacOS avec brew install --cocoa emacs Après cela, il faut lancer la version .app pour obtenir gui, ce qui dans mon cas était /usr/local/Cellar/emacs/24.3/Emacs.app/Contents/MacOS/Emacs
la source
En améliorant davantage la réponse de David James, les travaux suivants fonctionnent pour moi:
Par instructions pour ouvrir un fichier à partir d'un terminal trouvé à http://www.emacswiki.org/emacs/EmacsForMacOS#toc20
en combinant cela avec la réponse de David Jame, j'ai créé le script emax bash suivant et l' ai placé dans mon chemin à ~ / bin
Attention : pour que emacs ouvre le répertoire courant en mode Dired by name , vous devez utiliser
Environnement:
la source
Les autres réponses ici n'ont pas vraiment fonctionné pour moi. En particulier, sur ma machine, le script bash
ouvre toujours emacs dans le répertoire personnel. Pour l'ouvrir dans le répertoire de travail actuel, j'ai dû faire
au lieu.
la source
Compilez Emacs selon les étapes suivantes:
Et vous avez terminé! Il peut être utile de télécharger et d'installer XQuartz, mais ce n'est que mon avis.
la source
Ceci est mon script pour ouvrir emacs / emacsclient sur osx.
la source
Dans tout ce qui précède lorsque vous utilisez "open" - assurez-vous d'utiliser l'option "--args"
Ne faites pas cela:
Au lieu de cela:
l'
--args
option empêche «open» de consommer diverses options destinées à Emacs.la source