Bagaimana saya bisa mendapatkan Emacs untuk reload semua definisi yang saya telah diperbarui dalam .emacs
tanpa restart Emacs?
Anda dapat menggunakan perintah load-file (M-x load-file
, kemudian tekan kembali dua kali untuk menerima default nama file, yang saat ini file yang sedang diedit).
Anda juga dapat hanya memindahkan titik akhir dari setiap sexp dan tekan C-xC-e untuk mengeksekusi hanya itu sexp. Biasanya itu's tidak diperlukan untuk reload seluruh file, jika anda're hanya mengubah satu atau dua baris.
Anda biasanya dapat hanya mengevaluasi perubahan wilayah. Menandai wilayah dari ~/.emacs yang anda've berubah, dan kemudian menggunakan M-x eval-wilayah RET
. Hal ini sering lebih aman daripada mengevaluasi ulang seluruh berkas sejak itu's mudah untuk menulis .emacs file yang doesn't bekerja dengan benar setelah dimuat dua kali.
Yang lain sudah menjawab pertanyaan anda seperti yang dinyatakan, tetapi saya menemukan bahwa saya biasanya ingin mengeksekusi baris-baris yang baru saja saya tulis. untuk itu, PilihAltx dalam lisp bekerja dengan baik.
M-: (load user-init-file)
Eval:
prompt (termasuk tanda kurung)user-init-file
adalah variabel yang memegang ~/.emacs
nilai (menunjuk ke file konfigurasi path) secara default(beban)
yang lebih pendek, lebih tua, dan non-versi interaktif dari (load-file)
; itu bukan perintah emacs (diketik di M-x) tapi hanya elisp fungsiM-:
> M-x
Cara pintas Keyboard:
(defun reload-init-file ()
(interactive)
(load-file user-init-file))
(global-set-key (kbd "C-c C-l") 'reload-init-file) ; Reload .emacs file
Saya sarankan bahwa anda don't melakukan hal ini, awalnya. Sebaliknya, memulai yang baru emacs sesi dan tes apa pun perubahan yang anda buat untuk melihat apakah mereka bekerja dengan benar. Alasan untuk melakukannya dengan cara ini adalah untuk menghindari meninggalkan anda dalam keadaan di mana anda harus dioperasi .emacs file, yang gagal untuk memuat atau tidak memuat bersih. Jika anda melakukan semua editing anda di sesi asli, dan semua pengujian di sesi baru, anda'akan selalu memiliki sesuatu yang dapat diandalkan untuk komentar kode menyinggung.
Ketika anda akhirnya senang dengan perubahan anda, kemudian pergi ke depan dan menggunakan salah satu jawaban yang lain untuk re-load. Preferensi pribadi saya adalah untuk eval
hanya bagian anda've ditambahkan/diubah, dan untuk melakukan itu hanya menyoroti wilayah menambahkan/mengubah kode dan panggilan M-x eval-wilayah
. Lakukan yang meminimalkan kode yang's dievaluasi, meminimalkan risiko yang tidak disengaja efek samping, seperti luapyad poin.
I'm saat ini di Ubuntu 15.04; saya ingin mendefinisikan sebuah kunci untuk ini. [M-insert] diterjemahkan ke alt-insert pada keyboard. Menempatkan ini pada anda .emacs file:
(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))
Tentukan di init file dan memanggil dengan M-x reload-pengguna-init-file
(defun reload-user-init-file()
(interactive)
(load-file user-init-file))
Meskipun M-x eval-buffer
akan bekerja, anda mungkin mengalami masalah dengan matikan dan hal-hal serupa lainnya. Pendekatan yang lebih baik mungkin untuk "mark" atau sorot whats new in anda .emacs (atau bahkan awal buffer jika anda hanya main-main) dan kemudian M-x eval-wilayah
. Semoga ini bisa membantu.
Berikut ini adalah cara cepat dan mudah untuk cepat menguji konfigurasi anda. Anda juga dapat menggunakan C-x C-e
di akhir tertentu lisp untuk menjalankan fungsi tertentu secara individual.
C-x C-e menjalankan perintah eval-terakhir-sexp (ditemukan di global-map), yang adalah aplikasi interaktif yang dihimpun Cadel fungsi.
Hal ini terikat pada C-x C-e.
(eval-terakhir-sexp EVAL-TERAKHIR-SEXP-ARG-INTERNAL)
Mengevaluasi sexp sebelum titik; cetak nilai di daerah echo. secara Interaktif, dengan awalan argumen, mencetak output ke dalam buffer saat ini.
Biasanya, fungsi ini akan memotong panjang output sesuai dengan nilai dari variabel 'eval-ekspresi-cetak-panjang' dan 'eval-ekspresi-cetak-level'. Dengan awalan argumen dari nol, namun, tidak ada pemotongan. Seperti awalan argumen juga penyebab bilangan bulat yang akan dicetak dalam beberapa format tambahan (oktal, heksadesimal, dan karakter).
Jika 'eval-ekspresi-debug-di-error' adalah non-nol, yang merupakan default, perintah ini untuk mengatur semua kesalahan untuk memasukkan debugger.
Di samping perintah seperti M-x eval-buffer atau M-x load-file anda dapat me-restart segar emacs dari baris perintah:
emacs -q --load "init.el"
Contoh penggunaan stackoverflow.com/questions/44959535/company-backends-in-gnu-emacs/