Jika saya secara tidak sengaja menutup buffer awal di Emacs, bagaimana cara membuat buffer awal yang baru ?
Binding default GNU Emacs:
C-xb
*scratch*
RET
atau, lebih tepatnya
M-x
switch-to-buffer *scratch*
RET
The *scratch*
buffer buffer yang dipilih pada startup, dan memiliki besar modus Lisp Interaksi . Catatan: mode untuk *scratch*
buffer dikendalikan oleh variabel initial-major-mode
.
Secara umum Anda dapat membuat buffer "scratch" sebanyak yang Anda inginkan, dan beri nama sesuka Anda.
C-xb
NAME
RET
beralih ke buffer NAME
, membuatnya jika tidak ada. Buffer baru tidak dikaitkan dengan file pada disk hingga Anda menggunakan C-xC-w(atau M-x write-file
RET) untuk memilih file yang harus disimpan.
M-x
text-mode
RET
mengubah mode utama buffer saat ini ke mode Teks. Untuk menemukan semua mode yang tersedia (yaitu, tanpa memerlukan paket baru), Anda bisa mendapatkan daftar dengan mengetik:
M-x
apropos-command -mode$
RET
.emacs
menentukan mode goresan default yang berbeda , yang ini akan menjadi mode untuk goresan baru - bukan mode Interaksi Interaksi.Saya menambahkan berikut ini di .emacs saya:
Jika saya tidak ingin melihat scratch buffer saya menekan Cx Ck, tetapi tidak mematikannya, cukup tempatkan di akhir daftar buffer, jadi saya membutuhkannya lain kali saya tidak perlu membuat yang baru.
sumber
Ada banyak tips di halaman EmacsWiki ini .
Inilah yang pertama:
sumber
Cx b
*scratch*
RET y RET dengan mode iswitchb diaktifkan.Cx b
*scratch*
RET sebaliknya.sumber
initial-major-mode
variabel (cadel-interaksi-mode secara default).Saya menemukan ini tahun lalu ketika saya mulai menggunakan emacs; Saya tidak tahu di mana sekarang tetapi selalu memiliki rumah di file .el pribadi saya. Itu muncul dalam pencarian google.
sumber
Saya dulu menggunakan solusi dwj, dan saya cukup senang tentang hal itu, sampai hari saya menyadari bahwa itu gagal ketika Anda benar-benar mengganti nama buffer awal (misalnya dengan menyimpannya).
Lalu saya mengadopsi ini, yang bekerja dengan baik untuk saya:
sumber
Saya memiliki
scratch
sebagai perintah interaktif untuk membuka buffer awal yang baru (saya ingin memiliki beberapa):diadopsi dari: http://everything2.com/index.pl?node_id=1038451
sumber
bufname
RET)?ido-mode
dan biasanya memiliki beberapa buffer terbuka. Membuat buffer baru menggunakanC-x b
akan sangat membosankan. Saya harus membuat nama unik yang tidak cocok dengan buffer yang ada saat ini.Ini tidak hanya akan dengan cepat beralih ke
*scratch*
buffer (karena saya sering melakukan ini), tetapi membuat ulang*scratch*
buffer dan mengaktifkanlisp-interaction-mode
secara otomatis jika Anda membunuhnya secara tidak sengaja. Ubah ikatan yang Anda inginkan.sumber
Sekadar diketahui paket emacs
unkillable-scratch
di MELPA akan melakukan ini. Ada jugascratch-persist
yang secara otomatis akan menyimpan dan mengembalikan buffer antar sesi.sumber
Seperti kata docstring, fungsi ini akan:
Ini akan membawa buffer awal baru yang terlihat seperti buffer awal awal.
sumber
Inilah yang saya gunakan - saya memiliki keystroke yang nyaman ini. Ini mengirim Anda ke
*scratch*
buffer, terlepas dari apakah sudah ada atau belum, dan mengaturnya untuk masuklisp-interaction-mode
sumber
Saya lebih suka memiliki buffer awal saya menjadi file aktual yang disimpan secara otomatis, dan membuka kembali itu semudah membuka file. Saat startup, saya mematikan default dan menemukan sendiri seperti ini.
Saya memiliki fungsi kill-buffer kustom yang pada dasarnya melakukan hal yang sama - membuka kembali file pribadi saya yang tersimpan dan membunuh awal default jika saya membunuh buffer yang terlihat terakhir.
Saya mengkustomisasi beberapa
desktop.el
fungsi untuk memuat setelah(kill-buffer "*scratch*")
dan(find-file "/Users/HOME/Desktop/.scratch")
agar file terakhir terlihat pada saat keluar dari Emacs tidak dikubur oleh goresan standar atau dikubur oleh goresan kustom saya ketika meluncurkan Emacs.Saya menikmati menggunakan
auto-save-buffers-enhanced
, yang secara otomatis menyimpan ekstensi file apa pun yang tidak dikecualikan secara khusus:https://github.com/kentaro/auto-save-buffers-enhanced/blob/master/auto-save-buffers-enhanced.el
Saya menggunakan sedikit variasi fungsi oleh @paprika ketika saya ingin membuat buffer kunjungan tanpa file:
sumber
Saya telah menggabungkan solusi yang diposting sejauh ini ke dalam satu fungsi:
Untuk menerapkan fungsi ini di .emacs Anda gunakan:
Ini akan membuat buffer awal tidak bisa dihancurkan di tempat pertama, dan jika disimpan akan dibuat ulang. Selain itu kami dapat menggunakan fungsi pintasan
scratch
untuk membuka buffer dengan cepat:Di masa lalu, terbukti bermanfaat untuk mengetahui direktori startup-awal dari mana Emacs dimulai. Ini adalah nilai
desktop-dirname
ataudefault-directory
variabel lokal buffer awal:Jadi --startup-direktori akan selalu mengembalikan direktori dasar makefile Anda, TODO-file dll. Jika tidak ada desktop ( --no-desktop commandline-switch atau tidak ada desktop-file)
--scratch-directory
variabel akan menyimpan direktori Emacs dulu mulai di bawah.sumber
temukan jawabannya di EmacsWiki: http://www.emacswiki.org/emacs/RecreateScratchBuffer
sumber
Untuk menambah jawaban yang diterima, jika Anda memiliki mode ILO aktif (dan setelah itu pelengkapan otomatis C-x b, sehingga tidak memungkinkan Anda menulis
*scratch*
), maka cobalah:C-x b C-b *scratch* RET
sumber
untuk membuat buffer baru yang ada dalam mode interaksi lisp juga.
sumber