Comment faire pour exécuter plusieurs obus sur Emacs
J'utilise Emacs 23.3.1 sur windows 7. Je sais que je peux courir shell à partir d'emacs à l'aide de M-x shell. Je voudrais avoir plusieurs fenêtres de shell dans le même temps, mais en tapant M-x shell un deuxième temps il suffit de m'ouvre la même fenêtre shell.
Est-il un moyen d'avoir autre interpréteur de commandes de windows?
Vous devez vous connecter pour publier un commentaire.
C u M-x shell va le faire.
Il vous demandera un nom pour la nouvelle coque, il suffit de frapper le retour de la valeur par défaut (qui sera quelque chose comme
*shell*<2>
.Travaille également avec eshell.
Une autre astuce, si vous utilisez eshell: tout comme M-x eshell vous ramène à
*eshell*
(plutôt que de commencer une nouvelle eshell), si vous utilisez un préfixe numérique argument qu'il vous faudra pour que eshell tampon. Par exemple, C-3M-xeshell vous amène à*eshell*<3>
. Malheureusement, si vous utilisez le shell (plutôt que eshell), cette astuce ne semble pas fonctionner (dans mon Emacs 24.0.50.1 au moins.)C-u
exécute la commandeuniversal-argument
. C'est une façon d'injecter un argument dans la prochaine commande. Vous pouvez en lire plus à ce sujet avecC-h k C-u
(C-h k
s'exécutedescribe-key
, très pratique!)C-h f eshell
(C-h f
s'exécutedescribe-function
) montre que la fonctioneshell
prend un argument optionnel. Citation: Un préfixe numérique arg (comme dansC-u 42 M-x eshell RET
) les commutateurs de la session avec ce numéro, le créant si nécessaire. Un non numériques préfixe arg moyens de créer une nouvelle session.*shell*<2> 3038 Shell (shell<1> run) ~/
et lorsque vous essayez de cesser de fumer, emacs se réfère à l'interpréteur shell<1> bien que le nom de shell<2>. Bien sûr, je peux modifier le suggère par défaut le paramètre de nom, mais je ne fais pas ça.SPC : shell C-u RET
(sources: github.com/syl20bnr/spacemacs/blob/master/doc/... et boyanangelov.com/spacemacs/doc/DOCUMENTATION.html#orgheadline55)Vous pouvez renommer le tampon de votre coquille avec M-x renommez-tampon. Ensuite, vous serez en mesure de lancer une deuxième coque.
Regarder MultiTerm, il permet de gérer plusieurs terminaux dans Emacs beaucoup plus facile.
Il pourrait également être utile d'utiliser un écran-comme l'interface de votre coquille. J'ai écrit mon propre, mais il en existe d'autres, comme EmacsScreen.
Après plus de quatre ans, je vois que certaines personnes sont toujours à la recherche de ce problème, parfois, je vais donc publier rapidement une fonction que j'ai écrit pour charger un obus, et de lui demander son nom. De cette façon, vous pouvez nommer un shell "tri-files" si elle est dédiée au tri des fichiers et de l'autre une "ruche" si elle est dédiée à exécuter des requêtes hive. - Je l'utiliser tous les jours (sur emacs 24):
Cela va générer automatiquement une nouvelle instance du shell dans tout ce tampon vous arrive d'être en utilisant; liez-M-S ou des choses comme ça et instantanée de la joie:
Merci beaucoup à phils pour recommander une réécriture à l'aide de laisser, même si le résultat est encore plus terrible des parenthèses...:\
let
-lier les variables si elles sont destinées à un usage local. Comme il est maintenant, vous avez des valeurs globales pourcurrentbuf
etnewbuf
.Cela va ouvrir un nouveau shell chaque fois que vous appelez la fonction et le renommer automatiquement si nécessaire.
L'avantage supplémentaire est que si vous êtes l'édition de fichiers à distance (dired/clochard...), ce qui permettra d'ouvrir un shell sur la machine distante et le renommer automatiquement avec la télécommande du nom d'hôte: