C-u M-x shell zrobię to.
Zostanie wyświetlony monit o nazwę nowej powłoki, po prostu naciśnij klawisz powrotu, aby ustawić wartość domyślną (będzie to coś w rodzaju *shell*<2>
.
Działa również z eshell.
Kolejna sztuczka, jeśli używasz eshell: tak samo jak M-x eshellprzenosi cię z powrotem do *eshell*
(zamiast rozpoczynania nowej eshell), jeśli użyjesz liczbowego prefiksu argumentu, przeniesie cię do tego bufora eshell. Na przykład C-3M-xeshellzabierze Cię do *eshell*<3>
. Niestety, jeśli używasz powłoki (zamiast eshell), ta sztuczka wydaje się nie działać (przynajmniej w moim Emacs 24.0.50.1).
C-u
uruchamia polecenieuniversal-argument
. Jest to sposób na wprowadzenie argumentu do następnego polecenia. Możesz przeczytać więcej na ten temat zC-h k C-u
(C-h k
biegidescribe-key
, bardzo przydatne!)C-h f eshell
(C-h f
uruchamiadescribe-function
) pokazuje, że funkcjaeshell
przyjmuje opcjonalny argument. Cytat: numeryczny prefiks arg (jak wC-u 42 M-x eshell RET
) przełącza na sesję z tym numerem, tworząc go w razie potrzeby. Nienumeryczny prefiks arg oznacza utworzenie nowej sesji.Możesz zmienić nazwę bufora swojej powłoki za pomocą M-x rename-buffer. Wtedy będziesz mógł odpalić drugą powłokę.
źródło
Spójrz na MultiTerm , znacznie ułatwia zarządzanie wieloma terminalami w Emacsie.
źródło
Przydatne może być również użycie interfejsu ekranowego do powłok. Napisałem własne, ale są też inne, takie jak EmacsScreen .
źródło
Po ponad czterech latach widzę, że niektórzy ludzie nadal czasami patrzą na ten problem, więc opublikuję szybką funkcję, którą napisałem, aby załadować powłokę i zapytać o jej nazwę. W ten sposób możesz nazwać powłokę „sort-files”, jeśli jest przeznaczona do sortowania plików, a kolejną „gałąź”, jeśli jest przeznaczona do uruchamiania zapytań gałęzi. Używam tego codziennie (na emacs 24):
źródło
Spowoduje to automatyczne wygenerowanie nowej instancji powłoki w jakimkolwiek buforze, którego używasz; związać go ze stwardnieniem rozsianym lub czymś podobnym i natychmiastową radością:
Wielkie dzięki dla phils za zalecenie przepisania przy użyciu let, mimo że wynikiem są jeszcze okropniejsze nawiasy ...: \
źródło
let
wiązać zmienne, jeśli są przeznaczone do użytku lokalnego. Teraz masz globalne wartości dlacurrentbuf
inewbuf
.Spowoduje to otwarcie nowej powłoki za każdym razem, gdy wywołasz funkcję i automatycznie zmieni jej nazwę w razie potrzeby. Dodatkowym plusem jest to, że jeśli edytujesz pliki zdalnie (dired / tramp ...), otworzy to powłokę na zdalnym hoście i automatycznie zmieni jej nazwę na zdalną nazwę hosta:
źródło