Saya menggunakan Emacs 23.3.1 di windows 7. Saya tahu saya bisa menjalankan shell dari emacs menggunakan Mx shell. Saya ingin memiliki beberapa jendela shell dalam waktu yang bersamaan, tetapi mengetikkan shell Mx untuk kedua kalinya hanya membuka jendela shell yang sama.
Apakah ada cara untuk memiliki shell windows yang berbeda?
C-u
menjalankan perintahuniversal-argument
. Ini adalah cara menyuntikkan argumen ke perintah berikutnya. Anda dapat membaca lebih lanjut tentang ini denganC-h k C-u
(C-h k
menjalankandescribe-key
, sangat berguna!)C-h f eshell
(C-h f
berjalandescribe-function
) menunjukkan bahwa fungsi tersebuteshell
mengambil argumen opsional. Kutipan: Arg awalan numerik (seperti dalamC-u 42 M-x eshell RET
) beralih ke sesi dengan nomor itu, membuatnya jika perlu. Arg awalan nonnumerik berarti membuat sesi baru.Anda dapat mengganti nama buffer dari shell Anda dengan M-x rename-buffer. Maka Anda akan dapat meluncurkan shell kedua.
sumber
Lihatlah MultiTerm , itu membuat mengelola banyak terminal di Emacs jauh lebih mudah.
sumber
Mungkin juga berguna untuk menggunakan antarmuka seperti layar untuk cangkang Anda. Saya sudah menulis sendiri, tetapi ada orang lain di luar sana, seperti EmacsScreen .
sumber
Setelah lebih dari empat tahun, saya melihat bahwa beberapa orang masih melihat masalah ini kadang-kadang, jadi saya akan menerbitkan fungsi cepat yang saya tulis untuk memuat shell dan menanyakan namanya. Dengan begitu Anda bisa memberi nama shell "sort-files" jika didedikasikan untuk menyortir file dan yang lain "sarang" jika didedikasikan untuk menjalankan query sarang. Saya menggunakannya setiap hari sekarang (di emacs 24):
sumber
Ini akan secara otomatis membuat instance shell baru di buffer apa pun yang kebetulan Anda gunakan; ikat ke MS atau sesuatu seperti itu dan kesenangan instan:
Terima kasih banyak kepada phils untuk merekomendasikan penulisan ulang menggunakan let, walaupun hasilnya bahkan lebih buruk lagi ...: \
sumber
let
-mengikat variabel jika itu dimaksudkan untuk penggunaan lokal. Karena sekarang Anda memiliki nilai global untukcurrentbuf
dannewbuf
.Ini akan membuka shell baru setiap kali Anda menjalankan fungsi dan mengganti nama secara otomatis jika diperlukan. Nilai tambah yang ditambahkan adalah jika Anda mengedit file dari jarak jauh (dired / tramp ...), ini akan membuka shell pada host jarak jauh dan mengganti nama secara otomatis dengan nama host jarak jauh:
sumber