Saya mengerti itu nil
, 0
dan / atau -1
digunakan untuk menonaktifkan beberapa fitur dan t
, 1
dan / atau +1
digunakan untuk mengaktifkan beberapa fitur. Saat menetapkan variabel atau mengaktifkan / menonaktifkan mode kecil, mana yang harus saya pilih?
Saya telah melihat semua variasi ini digunakan pada satu titik atau yang lain. Ini membuat saya bertanya-tanya apakah sebenarnya ada perbedaan di antara mereka. Saya telah melihat bahwa kadang-kadang menggunakan 0
tidak bekerja untuk saya, sementara itu nil
tidak. Apakah ada perbedaan di mana mereka digunakan?
Jawaban:
TL; DR
Sebelum Anda mengatur variabel apa pun, Anda harus tahu bagaimana variabel itu harus ditafsirkan. Demikian pula, sebelum Anda memanggil fungsi apa pun (termasuk yang digunakan untuk beralih mode kecil), Anda harus tahu bagaimana argumen dari fungsi itu ditafsirkan.
Gunakan C-hfdan C-hvuntuk melihat dokumentasi untuk fungsi atau variabel yang dimaksud. Ini harus menentukan nilai-nilai yang diharapkan.
"Non-nil" secara harfiah berarti segala sesuatu yang bukan
nil
. Ini termasuk0
dan angka negatif.Mode Kecil
Mari kita ambil contoh spesifik. Ketik C-hf
blink-cursor-mode
dan tekan RETuntuk melihat dokumentasi fungsi untukblink-cursor-mode
:Kami dapat mengaktifkan mode Blink Cursor dengan salah satu cara berikut:
Perhatikan bahwa argumen
t
kehendak bekerja, meskipun string doc tidak secara khusus menyebutkannya. Meskipun ini sering terjadi, taruhan teraman Anda adalah menggunakan apa yang dikatakan oleh string doc agar Anda gunakan, yang dalam hal ini adalah nilai positif.Juga, perhatikan bahwa argumen
nil
akan berhasil. Saya akan sangat menyarankan tidaknil
dengan cara ini karena itu membuat niat Anda tidak jelas. Jika saya membaca kode cadel Anda dan melihatnil
argumen, saya akan berasumsi bahwa Anda ingin menonaktifkan mode minor.Kami juga dapat menonaktifkan
blink-cursor-mode
dengan cara berikut:Perhatikan lagi bahwa
nil
ini bukan salah satu cara untuk menonaktifkan mode minor ini. Ini berlaku untuk hampir semua mode minor yang akan Anda temui.Variabel
Sekarang mari kita lihat contoh variabel. Ketik C-hv
truncate-lines
dan tekan RETuntuk melihat dokumentasi untuk variabeltruncate-lines
:Anda dapat mengaktifkan pemotongan dengan salah satu cara berikut:
Mungkin mengejutkan Anda bahwa
0
dan-1
akan berhasil. Sekali lagi, saya akan merekomendasikan untuk tidak menggunakannya karena niat Anda tidak jelas.Satu-satunya cara untuk menonaktifkan pemotongan adalah ini:
Dengan kata lain Anda dapat mengatur
truncate-lines
sama dengan angka, huruf, string, daftar, atau apa pun yang Anda inginkan, selama tidak dievaluasinil
maka akan memungkinkan pemotongan. (Tapi Anda harus tetap dengant
atau1
).sumber
Ini semua adalah hal yang berbeda. 0, 1, dan -1 adalah angka yang berbeda;
nil
adalah simbol.Mereka masing-masing digunakan di semua tempat, untuk banyak hal yang berbeda. Untuk mencari tahu apa yang digunakan untuk masing-masing dalam konteks tertentu , lihat dokumen untuk konteks itu . Dan itu termasuk konteks mengaktifkan atau menonaktifkan mode yang berbeda, mengaktifkan dan menonaktifkan berbagai hal menggunakan variabel, dan banyak konteks lainnya.
Alhasil:
Doc untuk mode yang diberikan umumnya memberi tahu Anda cara menghidupkan dan mematikannya. Jika itu memberitahu Anda untuk menggunakan 1 atau -1 atau
nil
atau bukannil
untuk sesuatu, maka itulah artinya. Ada beberapa aturan umum untuk mengaktifkan dan menonaktifkan mode (secara interaktif dan dari kode Lisp). Tapi sepertinya Anda benar-benar perlu memulai dengan mendapatkan latar belakang umum.Konsultasikan dokumen Emacs untuk mempelajari cara meminta bantuan dan informasi lain dari Emacs sendiri : cara memeriksa nilai variabel, cara melihat dokumen variabel atau fungsi (termasuk fungsi yang mengaktifkan / menonaktifkan mode) , dan seterusnya.
Anda dapat mulai dengan menggunakan
C-h C-h
( Ctrl-h Ctrl-h), untuk mempelajari tentang sistem bantuan Emacs. Dan membangun dari sana.C-h r
menempatkan Anda ke dalam manual Emacs. Coba tutorial Emacs:C-h t
. Dan periksa halaman Newbie Emacs Wiki dan halaman tentang LearningEmacs .Untuk mulai belajar tentang Emacs Lisp:,
C-h i
lalu pilih manual yang bernamaEmacs Lisp Intro
, dan mulai membaca. Dan periksa halaman Emacs Wiki tentang Belajar Emacs Lisp .sumber
nil
persamaan logis dari false dant
true dan sisanya hanya angka. Tetapi saya tidak yakin konteks apa yang biasanya mereka gunakan.