Bagaimana menjalankan 'emacs' di terminal emulator tanpa jendela terpisah?

16

Saya mencari untuk beralih ke Emacs dari Vim dan satu hal yang membuat saya menjauh adalah bahwa Emacs membuka jendela terpisah sendiri ketika dijalankan di bawah X. Bisakah saya mendapatkan perilaku yang sama untuk Emacs seperti halnya ketika tidak berjalan di bawah X? Yaitu, saya ingin Emacs memulai sesi di terminal yang sama dengan yang dipecatnya.

Beri tahu saya jika pertanyaannya tidak jelas. Terima kasih sebelumnya!

Amit Saha
sumber

Jawaban:

34

Saya bukan ahli emacs, tetapi ini berhasil bagi saya:

emacs -nw
Alberto Zaccagni
sumber
7
Anda benar, karena penasaran -nw adalah kependekan dari --no-window-system yang memberitahu emacs untuk tidak menggunakan antarmuka X-nya.
@Mic: Terima kasih atas penjelasan, cara ini saya akan ingat apa singkatan
Alberto ZACCAGNI
16

Anda mungkin lebih suka memulai emacs emacs --daemonsaat menggunakan emacsclient -tuntuk mengedit file. Ini membuat Emacs dimuat di latar belakang, sehingga Anda dapat menggunakan Emacs lebih seperti vi. Sesi pengeditan akan mulai secara instan, dan "berhenti" melalui Cx Cc hanya akan menutup koneksi saat ini. Itu sangat bagus.

jrockway
sumber
5

Meskipun pertanyaan Anda telah dijawab, saya berani mengatakan bahwa ini bukan cara pengguna biasa menggunakan emacs. Tidak seperti vim, emacs umumnya memiliki waktu startup yang lebih lama dan lagi pula cenderung berjalan sepanjang waktu dengan beberapa buffer terbuka. Jadi ketika Anda ingin melakukan sesuatu dengan emacs di terminal, Anda memohon emacsclient -nw(dengan asumsi server emacs telah dimulai). Melihat Cara mulai menggunakan EmacsClient untuk detailnya.

Raja
sumber
2

Jika Anda menggunakan bash, Anda selalu dapat menambahkan yang berikut ke .bashrc Anda

alias emacs = "emacs -nw"

Itu menyelamatkan saya banyak mengetik (dan mengutuk ketika saya lupa mengetikkan switch).

Dick Kennedy
sumber
1

Menggabungkan jawaban di atas oleh Dick Kenny dan Alberto Zaccagni Anda mendapatkan konfigurasi berikut yang saya gunakan di .bashrc:

alias emacs='emacsclient -nw -c -a ""'

Ini akan mencoba untuk terhubung ke daemon emacs runnning. Jika tidak ada yang berjalan, itu akan memulai yang baru, dan kemudian terhubung menggunakan jendela terminal saat ini.

Dari dokumen:

-a EDITOR, --alternate-editor=EDITOR
        Editor to fallback to if the server is not running
        If EDITOR is the empty string, start Emacs in daemon
        mode and try connecting again

-nw, -t, --tty      Open a new Emacs frame on the current terminal

-c, --create-frame  Create a new frame instead of trying to 
                    use the current Emacs frame
Heinrich Hartmann
sumber
1
Ketika saya mencoba perintah ini, Emacs gagal untuk memulai, sebaliknya memberi saya peringatan tentang tidak ada server untuk terhubung, diikuti oleh dump nilai besar dan Emacs tidak memulai.
Koz Ross