Jawaban:
Emacs memiliki beberapa tempat untuk mencari file init, seperti yang didokumentasikan dalam manual . Jika Anda ingin menyesuaikan Emacs, Anda harus mulai dengan salah satu file itu.
Pendekatan umum adalah dengan menggunakan file init.el
di Anda user-emacs-directory
, daripada memiliki .emacs
di direktori HOME Anda.
The user-emacs-directory
default untuk ~/.emacs.d
, sehingga masih relatif RUMAH Anda, tetapi manfaat dari pendekatan ini adalah Anda dapat menyimpan segala sesuatu yang berkaitan dengan konfigurasi Emacs Anda di satu tempat. Direktori itu bisa di bawah kontrol versi, dicadangkan, dibagikan di banyak mesin, dll. Anda dapat menggunakan symlink ( mklink
di Windows) untuk menyimpan file di beberapa lokasi lain.
Sebagai contoh, sangat umum untuk melihat orang-orang mempertahankan konfigurasi Emacs mereka di Github. Anda dapat menemukan banyak contoh dari ini dengan mencari Github untuk proyek-proyek elisp dengan file init.el .
user-emacs-directory
Pada setiap instalasi Windows yang saya gunakan Emacs, saya memiliki kode berikut dalam .emacs
file di lokasi yang tercantum:
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
Dengan cara ini saya dapat meletakkan .emacs
dan di .emacs.d/
mana saja saya inginkan.
File .emacs Anda berada di HOME
direktori Anda . Dari manual Emacs:
Setara dengan Windows dari HOME adalah direktori data aplikasi khusus pengguna. Lokasi sebenarnya tergantung pada versi Windows ...
Anda dapat mengganti nilai default HOME ini dengan secara eksplisit mengatur variabel lingkungan HOME untuk menunjuk ke direktori apa pun di sistem Anda. HOME dapat diatur dari prompt shell perintah atau dari dialog 'Properties' pada 'My Computer'. HOME juga dapat diatur dalam sistem registry, lihat MS-Windows Registry.
HOME
direktori menjadi sesuatu yang sangat berbeda. Oleh karena itu mengapa saya menyebutnya perubahan hack. Menetapkannya ke nilai yang sesuai jelas baik-baik saja.
Kamu bilang:
Saya tahu cara mengatur direktori home karena alasan kontrol versi saya ingin dapat mengatur emacs untuk membaca dari direktori yang berbeda (sehingga saya dapat memiliki direktori khusus untuk emacs) .
File init Anda masuk ke direktori home Anda, yang dapat Anda letakkan di mana saja. Tampaknya Anda ingin memiliki direktori berbeda untuk hal-hal yang dimuat Emacs. Itu bukan masalah. Letakkan file init Anda di direktori home Anda, dan minta file itu menambahkan direktori lain ke nilai variabel load-path
dan kemudian memerlukan pustaka Emacs apa pun yang ingin Anda gunakan. Letakkan perpustakaan-perpustakaan itu di direktori lain itu.
TKI, file init Anda tidak perlu mengandung apa pun di luar pengaturan direktori tempat Anda menyimpan pustaka Emacs yang ingin Anda muat.
Hanya demi kelengkapan, saya memberikan tautan ke:
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
Yang mengatakan bahwa Anda dapat menetapkan HOME
nilai di jalur registri:
HKCU\SOFTWARE\GNU\Emacs\HOME
Tetapi nilai ini ditimpa oleh variabel lingkungan HOME
.
Pikirkan Anda bisa meletakkan (setq user-init-file "C:/path/to/.emacs")
dan baris lain yang diusulkan oleh @ryan ke situs-start.el
Situs Anda juga dapat memiliki file startup situs; ini dinamai situs-start.el, jika ada. Seperti default.el, Emacs menemukan file ini melalui jalur pencarian standar untuk perpustakaan Lisp. Emacs memuat pustaka ini sebelum memuat file init Anda.
site-start.el
memuat sendiriinit.el
dan Anda tidak perlu lagi a.emacs
. Dalam contoh ini, Anda tidak perlu mengutak-atik direktori home (kecuali orang lain di komputer meletakkan barang-barang di sana yang akan mempengaruhi apa yang Anda lakukan). Dengan kata lain, itu bisa kosong dan Anda tidak perlu menyentuhnya.