Emacs adalah salah satu contoh penyunting teks yang, kerana sifatnya yang serba boleh dan boleh disesuaikan, telah memperoleh nama yang cukup baik di kalangan komuniti pemaju. Sebagai salah satu editor teks tertua di luar sana, Emacs terkenal dengan kestabilan dan konsistensinya.
Apa yang menjadikan Emacs istimewa adalah bahawa ia bukan hanya penyunting teks, melainkan mesin yang lengkap. Emac boleh disiapkan sebagai shell, pelanggan e-mel, penganjur, dan banyak lagi. Kerumitan Emacs timbul dari pentafsir Lisp pada intinya, yang seterusnya membolehkan pengguna menyesuaikannya dengan lebih banyak fungsi menggunakan bahasa Lisp.
Artikel ini merangkumi cara menggunakan Lisp melalui pelbagai kaedah untuk mengkonfigurasi dan menyesuaikan Emacs.
Asas Lisp
Sebelum melihat bagaimana Lisp dapat digunakan untuk mengkonfigurasi Emacs, pertama sekali penting untuk melihat beberapa asas bahasa Lisp untuk mendapatkan pemahaman yang lebih baik mengenai ciri ini.
Di Lisp, program terdiri dari ekspresi simbolik, disingkat menjadi s-exp. Ungkapan-ungkapan ini boleh terdiri daripada salah satu pemboleh ubah sahaja, atau termasuk fungsi lain juga.
Fungsi diberi notasi dengan membungkus teks di dalam kurungan. Sebagai contoh, untuk memanggil fungsi penambahan, sintaks berikut digunakan:
(+ 2 2)Pernyataan di atas mengatakan "tambah 2 hingga 2."S-exp bersarang akan kelihatan seperti ini:
(+ 2 (+ 1 1))Anda juga boleh menyimpan nilai di dalam pemboleh ubah menggunakan perintah setq:
(setq nama saya "John")Fungsi dapat ditentukan dengan menggunakan menangkis kata kunci. Sebagai contoh, fungsi yang mengira kuasa dua nombor ditulis seperti berikut:
(defun persegi (x)(* x x))
(petak 2)
Anda boleh menilai fungsi yang ditentukan dengan menggunakan kekunci Ctrl + x diikuti oleh Ctrl + e. Ini akan menghasilkan output di dalam mini-buffer. Sebagai contoh, fungsi kuasa dua akan mempunyai output berikut:
Nota: anda mesti menilai segmen defun dan segmen segi empat sama.
Itu merangkumi asas. Bahagian berikut akan menunjukkan cara mengkonfigurasi Emac menggunakan Lisp.
Fail Permulaan
Semasa Emacs bermula, fail yang diproses pertama adalah fail inisialisasi, atau file init, yang berisi perintah yang ditulis dalam Lisp yang memungkinkan pengguna mengkonfigurasi Emacs. Untuk membuka fail inisialisasi, tekan Ctrl + x, diikuti oleh Ctrl + f, dan kemudian masukkan ~ /.emak. Di dalam ungkapan ini, anda boleh memasukkan kod tambahan untuk menyesuaikan Emacs.
1) Menambah Sokongan untuk Pakej
Lisp boleh digunakan untuk menambahkan sokongan di Emacs untuk pakej sumber yang berbeza. Melpa adalah salah satu sumber dari mana pengguna dapat memasang sambungan ini. Untuk menambahkan Melpa ke Emacs, tambahkan baris berikut ke fail init:
(memerlukan pakej)(tambah-ke-senarai 'pakej-arkib
'("melpa" . "http: // melpa.org / pakej / ") t)
(pakej-inisialisasi)
(pakej-muat semula-kandungan)
Kod ini menambahkan arkib Melpa ke senarai repositori pakej, memberi kebenaran kepada Emacs untuk menggunakan pakej ini, memulakan pakej ini, dan menyegarkan kandungan untuk perubahan yang akan berlaku. Sekiranya anda membuka senarai pakej anda dengan menekan Alt + x dan masukkan pakej-senarai-pakej, anda dapat melihat pakej yang dipasang di arkib Melpa.
-
2) Mengubah Tema Emacs
Pada mulanya, apabila anda memuatkan Emacs, anda akan mendapat skrin yang menyambut anda ke Emacs dan memberi anda pelbagai pilihan, seperti Emacs Tutorial.
Walau bagaimanapun, halaman ini tidak kelihatan hebat. Lisp membolehkan anda menukar tema Emacs dan halaman permulaan mengikut pilihan anda. Pengguna dapat memuat pelbagai jenis tema, mengubah saiz fon, dan bahkan menambahkan peluru baris.
Sebagai contoh, katakan anda mahu mengganti halaman permulaan ke buffer awal, memuatkan tema Material, dan menambahkan peluru garis. Ini dapat dilakukan dengan menambahkan baris berikut ke dalam fail init:
(setq menghalang-permulaan-mesej t)(bahan tema-beban 't)
(mod global-linum t)
Seperti yang ditakrifkan di atas, sintaks setq menjadikan mesej menghalang-permulaan-benar, yang membuang halaman permulaan awal. Tema beban memuatkan tema bahan. Sintaks mod global-linum hanyalah fungsi yang ditetapkan menjadi benar dan dilaksanakan untuk menghasilkan nombor garis. Seperti inilah Emacs setelah memasukkan arahan di atas:
3) Pintasan Ikatan ke Ikatan Utama
Lisp juga boleh digunakan untuk mengikat perintah atau jalan pintas ke kekunci. Ini memungkinkan pengguna untuk menyesuaikan Emac sesuai dengan pilihan mereka, serta menjalankan fungsi khusus yang dibuat oleh pengguna hanya dengan satu klik.
Katakan anda telah menentukan fungsi yang hanya menghasilkan watak garis miring terbalik dan anda mahu memberikannya kepada kekunci Ctrl + x diikuti oleh Ctrl + o. Ini dapat dilakukan dengan menambahkan baris berikut ke fail inisialisasi:
(defunkan insert_backslash ()(interaktif)
(masukkan "\"))
(global-set-key (kbd ""C-x C-o""))
'insert_backslash)
Di sini, fungsi insert_backslash didefinisikan, dibuat interaktif (ini membolehkan fungsi dipanggil makna interaktif dengan pengikatan kunci), dan outputnya adalah garis miring terbalik. Kemudian, anda boleh mengikat fungsi dengan kekunci yang diberikan di atas menggunakan kata kunci set-kunci global.
Mengapa Menggunakan Lisp?
Lisp adalah bahagian tidak terpisahkan dari Emacs, kerana ia membolehkan Emacs mempunyai lebih banyak kuasa dan fungsi. Lisp memberi peluang kepada pengguna untuk menyesuaikan Emacs dan mengubahnya menjadi sesuatu yang sesuai dengan minat dan keperluan mereka. Lisp inilah yang menjadikan Emacs benar-benar hebat dan unik berbanding dengan penyunting teks yang lain.
"