C-u M-x shell le fera.
Il vous demandera un nom pour le nouveau shell, appuyez simplement sur retour pour la valeur par défaut (qui sera quelque chose comme *shell*<2>
.
Fonctionne également avec eshell.
Une autre astuce, si vous utilisez eshell: tout comme M-x eshellvous ramène à *eshell*
(plutôt que de démarrer un nouveau eshell), si vous utilisez un argument de préfixe numérique, cela vous mènera à ce tampon eshell. Par exemple, vous C-3M-xeshellamènera à *eshell*<3>
. Malheureusement, si vous utilisez shell (plutôt que eshell), cette astuce ne semble pas fonctionner (au moins dans mon Emacs 24.0.50.1).
C-u
exécute la commandeuniversal-argument
. C'est une manière d'injecter un argument dans la commande suivante. Vous pouvez en savoir plus à ce sujet avecC-h k C-u
(C-h k
coursesdescribe-key
, très pratique!)C-h f eshell
(C-h f
s'exécutedescribe-function
) montre que la fonctioneshell
prend un argument optionnel. Quote: Un préfixe numérique arg (comme dansC-u 42 M-x eshell RET
) bascule vers la session avec ce numéro, le créant si nécessaire. Un préfixe non numérique arg signifie créer une nouvelle session.Vous pouvez renommer le tampon de votre shell avec M-x rename-buffer. Ensuite, vous pourrez lancer un deuxième shell.
la source
Regardez MultiTerm , il facilite la gestion de plusieurs terminaux dans Emacs.
la source
Il peut également être utile d'utiliser une interface de type écran avec vos shells. J'ai écrit le mien, mais il y en a d'autres, comme EmacsScreen .
la source
Après plus de quatre ans, je vois que certaines personnes se penchent encore sur ce problème parfois, donc je publierai une fonction rapide que j'ai écrite pour charger un shell et demander son nom. De cette façon, vous pouvez nommer un shell "sort-files" s'il est dédié au tri des fichiers et un autre "ruche" s'il est dédié à l'exécution de requêtes Hive. Je l'utilise tous les jours maintenant (sur emacs 24):
la source
Cela générera automatiquement une nouvelle instance de shell dans le tampon que vous utilisez; liez-le à MS ou à quelque chose comme ça et à la joie instantanée:
Un grand merci à phils pour avoir recommandé une réécriture en utilisant let, même si le résultat est encore plus horrible entre parenthèses ...: \
la source
let
lier des variables si elles sont destinées à un usage local. Dans l'état actuel des choses, vous avez maintenant des valeurs globales pourcurrentbuf
etnewbuf
.Cela ouvrira un nouveau shell chaque fois que vous invoquerez la fonction et la renommez automatiquement si nécessaire. L'avantage supplémentaire est que si vous éditez des fichiers à distance (dired / tramp ...), cela ouvrira un shell sur l'hôte distant et le renommera automatiquement avec le nom d'hôte distant:
la source