Pertanyaan yang sangat bagus! Inilah jalan yang telah saya ambil:
Langkah 0: Baca Tutorial Emacs
Baca Tutorial Emacs sebelum yang lainnya. Sepertinya Anda sudah melakukan ini. Bagus untukmu! Namun, bagi siapa pun yang datang ke sini di lain waktu, ini adalah tempat untuk memulai perjalanan Emacs Anda. Ada banyak posting blog yang menyesatkan di luar sana. Mereka terlalu rumit. Emacs membuatnya mudah:
- Mulai Emacs
- tekan
<RET>
Anda juga dapat mengaksesnya melalui Ctrl + h
t
, atau C-h t
dalam notasi Emacs.
Tutorial memperkenalkan konsep dasar Emacs, menjelaskan terminologi historis, dan membuat Anda masuk dalam waktu kurang dari 30 menit. Itu juga mengatur panggung untuk langkah selanjutnya.
Langkah 1: Baca "Pengantar Pemrograman di Emacs Lisp"
Langkah selanjutnya adalah membaca Pengantar Pemrograman di Emacs Lisp . Saya tidak bisa merekomendasikan buku ini cukup; itu ditulis dengan sangat baik! Itu datang dengan sebagian besar menginstal Emacs 1 . Cukup tekan C-h i
dan pilih dari menu. Anda juga bisa langsung melakukannya via C-h i m Emacs Lisp Intro
.
Kata Pengantar menyatakan,
Teks ini ditulis sebagai pengantar dasar untuk orang-orang yang bukan programmer.
Itu harus mengatakan "untuk orang-orang yang bukan programmer Lisp." Lisp sedikit berbeda dari bahasa lain, jadi ada baiknya dibaca jika Anda tidak terbiasa dengan Lisp. Penulis memiliki gaya yang mudah didekati dan banyak contoh. Butuh waktu sekitar seminggu untuk menyelesaikannya.
Langkah 1.5: Tip Pengembangan Emacs Lisp dengan John Wiegley
Pada akhir 2015, John adalah pemelihara proyek Emacs . Sacha Chua melakukan wawancara hebat dengannya di sini di mana John membahas dasar-dasar Emacs Lisp, lingkungan pengembangan, dan memberikan banyak nasihat hebat.
Langkah 2: Baca OPC (Other People's Code)
2a. Baca kode sumber
Karena Emacs adalah "editor tampilan yang dapat diperluas, dapat disesuaikan, didokumentasikan sendiri, real-time", semua kode sumber disertakan. Pelajari cara menggunakan fitur bantuan, C-h f
untuk suatu fungsi dan C-h v
untuk suatu variabel. Selalu ada tautan ke kode sumber:
2b. Baca semua init.el
's
Banyak orang melacak init.el
file mereka di Git atau Mercurial. Cari mereka. Salah satu triknya adalah mengeklik profil orang di StackOverflow, terutama emacs.stackexchange.com :
Mereka sering memiliki tautan ke GitHub atau situs web pribadi mereka:
Repos yang dipanggil dotemacs
atau dotfiles
sangat umum. Seiring waktu Anda akan mengetahui seperti apa kode yang baik dan apa kode yang buruk. Anda juga akan mempelajari nama-nama besar, seperti nama Xah , Sasha Chua , binchen , Magnar Sveen , abo-abo , dan banyak lagi. Ada begitu banyak orang untuk belajar!
Langkah 3: Retas pada Emacs
Tantang diri Anda untuk menulis fungsionalitas yang Anda inginkan. Jangan pernah menyalin kode secara membabi buta; selalu luangkan waktu untuk memahaminya. Jika Anda tidak memahaminya, jangan gunakan itu! Ketika Anda meluangkan waktu untuk memahami sepotong kode, selain belajar sesuatu yang baru, Anda sering memikirkan cara untuk memperbaikinya untuk use case khusus Anda. Ini adalah kesempatan untuk meretas! Bagaimanapun, itulah gunanya Anda init.el
! Buat kesalahan, hancurkan sesuatu, belajar debug. Anda akan menemukan bahwa karena Emacs ditulis dalam Elisp, pengembangan sangat menyenangkan.
Langkah 4: Ajukan pertanyaan di emacs.stackexchange.com
Saya telah menemukan bahwa komunitas Emacs di StackExchange menyukai pertanyaan Elisp yang bagus. Jadi, retas dengan percaya diri bahwa orang lain akan menghargai upaya Anda untuk belajar.
Langkah 5: Jawab pertanyaan di emacs.stackexchange.com
Tidak ada yang menjelaskan pemahaman Anda seperti mencoba menjelaskan sesuatu. Trolling halaman utama, Anda juga akan menemukan jawaban atas pertanyaan yang Anda tidak pernah tahu.
Kesimpulan
Seiring waktu Anda akan menemukan diri Anda mampu menghasilkan solusi lebih cepat dan untuk menjawab pertanyaan orang lain. Seperti semua pemrograman, ini bisa membuat frustasi. Namun, ingatlah untuk menghakimi diri Anda hari ini melawan diri Anda sendiri kemarin. Beberapa orang telah meretas Emacs selama 30 tahun! Namun, sebagian besar waktu, Anda akan menemukan bahwa Emacs adalah kesenangan untuk bekerja bersama dan kebebasan yang diberikannya memberi Anda inspirasi.
Selamat melakukan peretasan! :)
PS: Lihat paket jahat .
1 Beberapa instalasi tidak disertai dengan itu. Pengguna Debian, misalnya, harus menginstalnya secara terpisah. Agak konyol , tetapi disimpan di dalam repo yang tidak bebas . Tambahkan repo yang tidak bebas ke /etc/apt/sources.list
dengan menambahkan non-free
ke akhir setiap entri:
deb http://http.us.debian.org/debian stable main contrib non-free
Saya merekomendasikan "Emacs Lisp Intro".
"Emacs Lisp Intro" mungkin sudah tersedia dalam format info dalam Emacs Anda. Coba
C-h i m Emacs Lisp Intro RET
atau evaluasi(info "(eintr) Top")
di Emacs.Jika ini gagal mencari web untuk "Emacs Lisp Intro".
sumber
Mulai dengan halaman Wiki Emacs, Belajar Emacs Lisp .
Bukan berarti halaman itu sendiri akan mengajarkan Anda Emacs Lisp. Alih-alih itu akan menunjuk pada sumber belajar - persis apa yang Anda cari di sini , dengan pertanyaan Anda. Banyak pengguna telah berkontribusi dan mengeditnya selama bertahun-tahun. Itu menghadirkan kelebihan sekaligus kekurangan blog satu pengguna. Kualitas saran di sana tentu saja beragam, karena ragam inputnya.
Di luar itu - semua yang dikatakan orang lain di sini, terutama dimulai dengan dokumen bawaan Emacs:
Manual Elisp - sebagian besar referensi, tetapi beberapa panduan penggunaan yang baik dan info konseptual juga. Itu dibangun ke Emacs:
C-h i
lalu pilih manual Elisp.The Emacs Lisp Intro - pengantar langkah demi langkah untuk Lisp dan Emacs Lisp. Juga dibangun ke dalam Emacs dan tersedia dari
C-h i
.Karena Anda telah menggunakan Common Lisp, akan sangat mudah untuk mengambil Emacs Lisp. Anggap diri Anda beruntung tentang ini.
Jika Anda menggunakan Common Lisp (atau Zeta Lisp atau apa pun) pada mesin Lisp maka pengalamannya akan sangat mirip. Anda dapat menganggap Emacs sebagai (antara lain), lingkungan Lisp yang hebat. Anda dapat beralih dari nol menjadi 60 dalam waktu singkat, saat belajar.
Selamat bersenang-senang!
sumber
Sebagai penyegaran pada Lisp saya sangat merekomendasikan tiga bab pertama dari Paradigma Peter Norvigs dari Pemrograman Kecerdasan Buatan . Itu memberi Anda langkah cepat dan cepat untuk kembali ke Lisp yang akan membuat Anda kembali ke jalur dengan cepat.
Untuk noobs total ada COMMON LISP: A Softly Introduction to Symbolic Computation yang mengajarkan Anda konsep yang sama tetapi dengan kecepatan yang jauh lebih rendah.
Kedua buku tersedia online, gratis.
Setelah melalui salah satu di atas, Anda dapat membaca semua posting yang ditandai Elisp di nullprogram.com dan membaca panduan membaca di masteringemacs.org . Untuk mempelajari tentang perangkap umum, membaca pertanyaan utama di sini akan sangat membantu. Untuk masalah khusus, cari situs ini, rosettacode , atau mesin pencari favorit Anda.
Setelah Anda memahami dasar-dasarnya, manual Info biasanya akan menjawab sebagian besar pertanyaan yang tersisa yang muncul saat meretas Emacs.
sumber
Karena Anda memiliki latar belakang dalam Common Lisp dan Anda "melewati dasar-dasarnya", tidak ada gunanya tersesat dalam "Pengantar Pemrograman dalam Emacs Lisp".
Apa yang dapat Anda lakukan segera (saya tidak memiliki latar belakang di CL dan itu berhasil untuk saya) adalah:
1) menemukan mode yang Anda gunakan dan mencoba untuk menambahkan fungsi, Anda akan menemukan bantuan dalam Referensi Emacs Lisp
2) menulis file kustom Anda sendiri dengan fungsi sederhana Anda sendiri, di sini lagi menggunakan Referensi Emacs Lisp
Daftar help-gnu-emacs sangat membantu.
sumber
Saya benar-benar tidak berpikir Anda perlu membaca sesuatu yang spesifik tentang emacs lisp. Bukan rahasia lagi bahwa jika Anda ingin melakukan sesuatu di Emacs, kemungkinan besar, Anda hanya perlu menemukan perintah yang tepat atau seseorang telah menulis kode dan sekarang berada di suatu tempat di halaman wiki, atau github, atau dibuat menjadi plugin . Hanya dengan menyalin-menempelkan kode itu dan membacanya , Anda akan telah belajar sebagian besar Emacs cisp pada saat Anda bahkan agak puas dengan .emacs Anda.
Jika Anda ingin mendapatkan beberapa ide tentang cara menyesuaikan Emacs, konfigurasi khusus oleh orang lain mungkin merupakan sumber kebijaksanaan yang baik. Daftar konfigurasi seperti itu dapat Anda temukan di sini . Padahal, sungguh, memiliki visi Anda bekerja lebih baik dan mengunjungi .emacs orang lain biasanya dijamin hanya ketika Anda ingin beberapa pertanyaan dijawab [misalnya bagaimana saya menyusun kode / paket saya?] Atau beberapa kode disalin untuk tujuan spesifik Anda.
Menjelajah MELPA membuat saya menginstal dan mungkin mencoba selusin paket.
Jika Anda ingin mengembangkan sebuah plugin, saya menemukan bahwa membaca kode beberapa plugin tertentu yang Anda sukai dapat membantu Anda memulai dengan cukup cepat.
Karena Anda menggunakan vi, periksa mode kejahatan , itu bekerja sangat baik untuk saya. Saya juga akan merekomendasikan helm dengan
helm-apropos
(atau hanyaapropos
jika Anda tidak mauhelm
) perintah untuk membuat perjalanan Anda lebih mudah.Jadi, saran saya adalah untuk langsung ke titik penyesuaian dan Anda akan mempelajari semua yang Anda butuhkan saat bepergian. Terutama bahwa Anda meretas lisp sebelumnya, dahulu atau tidak, dan karena mempelajari elisp, sejauh yang saya tahu, merupakan alat untuk mencapai tujuan bagi Anda, yaitu untuk menyesuaikan emacs.
sumber
Lagu Elisp tentang olahraga.io juga merupakan cara yang menyenangkan untuk meningkatkan keterampilan Anda. Latihan lebih difokuskan pada elisp daripada pada Emacs tetapi akan mencakup berbagai dasar-dasar yang baik seperti ekspresi reguler, struktur data, matematika, dll.
sumber
Menurut saya, jawaban Loren Ipsum cukup baik.
https://emacs.stackexchange.com/a/47320/21433
Saya hanya akan menambahkan bahwa saya berasumsi Anda tahu dasar-dasar Lisp. Itu akan membantu Anda, tetapi itu tidak perlu (saya akan kembali tentang itu.)
Salah satu cara untuk belajar adalah dengan meretas atau memodifikasi mode / ekstensi yang ada. Saya mempelajarinya kembali di 93 dengan meretas file mode bahasa Ada. Itu adalah salah satu pengalaman paling menyenangkan yang saya miliki di perguruan tinggi.
Jadi Anda bisa melakukannya dengan bahasa yang Anda pilih, katakanlah, mode Java, atau mode Lisp, atau bahkan file mode Elisp.
Ubah, tambahkan makro, dll. Begitulah cara saya melakukannya.
sumber