Selama beberapa dekad, pengguna Emacs telah berdebat mengenai merit menjalankan editor teks berkuasa ini dalam mod terminal berbanding mod grafik. Walaupun sesetengah pengguna bersumpah dengan versi GUI yang mempunyai pratonton imej dan keupayaan PDF, yang lain lebih menggemari kecekapan ringan penyuntingan berasaskan terminal. Perbincangan berterusan ini mendapat tenaga baharu apabila pengguna berkongsi penyelesaian kepada isu pemberian kekunci terminal yang berterusan dan menemui teknologi terminal baharu yang boleh membentuk semula pengalaman Emacs.
Cabaran Pemberian Kekunci Terminal
Menjalankan Emacs dalam mod terminal memberikan cabaran unik yang tidak pernah dihadapi oleh pengguna GUI. Isu asas berpunca daripada cara emulator terminal mengendalikan input papan kekunci sebelum ia sampai ke Emacs sendiri. Gabungan kekunci kompleks seperti Ctrl+Backspace selalunya diubah atau hilang dalam terjemahan antara terminal dan aplikasi. Masalah ini menjadi lebih ketara bagi pengguna dengan susun atur papan kekunci bukan QWERTY atau bahasa yang memerlukan aksara aksen.
Seorang pengguna dengan tepat menangkap sentimen komuniti mengenai batasan terminal: Saya benar-benar tidak pernah faham menjalankan Emacs dalam terminal, sebaliknya menjalankan terminal dalam Emacs GUI. Perspektif ini menekankan bagaimana ramai pengguna lebih suka menanam fungsi terminal dalam persekitaran Emacs grafik berbanding pendekatan sebaliknya.
Penyelesaian Baharu dan Protokol Terminal
Komuniti telah bersatu di sekitar beberapa penyelesaian teknikal untuk menambah baik pengalaman Emacs terminal. Protokol Papan Kekunci Kitty (KKP) telah muncul sebagai pendekatan yang menjanjikan, dengan pengguna melaporkan kejayaan menggunakannya dengan emulator terminal seperti Kitty dan Ghostty. Protokol ini membolehkan pengesanan kekunci yang lebih dipercayai dan juga membenarkan pemetaan pemberian kekunci super dan menukar kekunci pengubah - fungsi yang sebelum ini tidak boleh dipercayai dalam persekitaran terminal.
Walau bagaimanapun, penggunaan penyelesaian terminal tertentu telah mencetuskan debatnya sendiri. Sesetengah pengguna menyuarakan kebimbangan mengenai telemetri dalam emulator terminal tertentu, dengan menyatakan bahawa Kitty menghubungi pusat data, memberikan maklumat kepada pelayan dengan telemetri opt-out dan bukannya opt-in. Ini telah menyebabkan sesetengah ahli komuniti meneroka terminal alternatif yang menghormati privasi sambil mengekalkan keserasian dengan protokol papan kekunci.
Emulator Terminal untuk Emacs
- Kitty: Menyokong protokol KKP, teks bersaiz berubah-ubah, tetapi mempunyai telemetri opt-out
- Ghostty: Serasi dengan KKP, alternatif yang fokus kepada privasi
- iTerm2 (macOS): Serasi dengan KKP tetapi mungkin tidak melaporkan kekunci Super
- Pilihan terbina dalam: M-x shell (asas), vterm (prestasi tinggi), eat (pengendalian kekunci yang lebih baik)
Seni Bina Pelanggan-Pelayan dan Integrasi Sistem
Ramai pengguna Emacs yang berpengalaman telah beralih daripada penggunaan emacs -nw
yang mudah kepada persediaan pelanggan-pelayan yang canggih. Pendekatan integrasi systemd, di mana Emacs berjalan sebagai daemon latar belakang dan pengguna menyambung melalui emacsclient
, telah mendapat populariti kerana kelajuan dan kecekapannya. Seni bina ini menghapuskan kelewatan permulaan dan membolehkan penciptaan bingkai serta-merta sambil mengekalkan keadaan sesi.
Komuniti telah menambah baik lagi pendekatan ini dengan menjalankan pelayan Emacs berasingan untuk antara muka GUI dan terminal. Ini membolehkan pengguna mengekalkan konfigurasi berbeza untuk setiap persekitaran - mengekalkan tema terminal sentiasa gelap sambil membenarkan tema GUI berubah sepanjang hari. Seperti yang dijelaskan oleh seorang pengguna, pemisahan ini menyelesaikan gangguan di mana perubahan, seperti tema, dipantulkan pada pelanggan dan semua bingkai yang menyambung kepadanya.
Arahan Terminal Emacs yang Biasa Digunakan
emacs -nw
- Lancarkan Emacs dalam mod terminal (tanpa tetingkap)emacsclient -t
- Sambung ke pelayan Emacs sedia ada dalam terminalemacs-nox
- Emacs yang dikompil tanpa sokongan GUIsystemctl --user start emacsd.service
- Mulakan Emacs sebagai perkhidmatan pengguna
Emulasi Terminal Dalam Emacs
Menariknya, ramai pengguna Emacs GUI menggunakan pendekatan bertentangan - menjalankan emulator terminal dalam Emacs itu sendiri. Pakej seperti vterm
dan eat
(Emulate A Terminal) telah berkembang untuk menyediakan emulasi terminal berprestasi tinggi terus dalam penimbal Emacs. Pengguna melaporkan bahawa eat
terutamanya cemerlang dalam persekitaran terminal dengan kurang kelipan, dan nampaknya mengendalikan penerusan kekunci dengan lebih baik berbanding alternatif lain.
Integrasi emulasi terminal dalam Emacs memang memberikan beberapa cabaran keserasian, terutamanya untuk pengguna pakej penyuntingan modal seperti evil-mode
. Sesetengah pakej terminal mempunyai isu dengan penempatan kursor dan arahan navigasi dalam mod normal, memerlukan penyelesaian atau pelarasan konfigurasi untuk berfungsi dengan lancar dengan aliran kerja penyuntingan yang popular.
Protokol Teknikal Utama
- KKP (Kitty Keyboard Protocol): Membolehkan pengesanan kekunci yang boleh dipercayai dalam terminal
- OSC-52: Protokol terminal untuk akses papan keratan dalam binaan nox
- Child Frames: Ciri terminal akan datang untuk elemen UI terapung
- Systemd Services: Kaedah untuk menjalankan Emacs sebagai daemon latar belakang
Pembangunan Masa Depan dan Keterujaan Komuniti
Pengalaman terminal Emacs terus berkembang dengan ciri akan datang yang menjana keterujaan signifikan. Cabang master Emacs kini menyokong bingkai anak dalam mod terminal, satu perkembangan yang ditonjolkan oleh ahli komuniti sebagai membolehkan menu pelengkap automatik terapung, kotak pemberitahuan, interaksi seperti dialog - semua kemungkinan menarik yang kami ada dalam GUI untuk masa yang lama.
Kemajuan ini boleh mengurangkan jurang ciri antara terminal dan Emacs grafik dengan ketara, membawa elemen UI canggih kepada pengguna terminal. Selain itu, terminal seperti Kitty telah memperkenalkan keupayaan teks bersaiz boleh ubah, yang akhirnya boleh membolehkan saiz fon setiap bingkai dalam Emacs terminal - ciri yang kini eksklusif kepada versi GUI.
Penerokaan berterusan komuniti Emacs mengenai integrasi terminal menunjukkan kebolehsesuaian editor yang luar biasa. Sama ada melalui protokol papan kekunci yang lebih baik, seni bina pelanggan-pelayan, atau emulasi terminal tertanam, pengguna terus mencari cara inovatif untuk menyesuaikan persekitaran penyuntingan mereka kepada aliran kerja dan keutamaan tertentu. Dialog antara penyokong terminal dan GUI akhirnya memberi manfaat kepada semua pengguna dengan mendorong penambahbaikan merentas kedua-dua antara muka.
Rujukan: Emacs dalam terminal: pemberian kekunci, pelanggan dan banyak lagi