Yeniden aç * çizik * arabellek


25

Kazıma tamponunu Emacs'ta yanlışlıkla kapattıysam, nasıl yeni bir çizik tamponu oluşturabilirim?


Lütfen yalnızca kendi sorularınızı cevaplamak amacıyla, özellikle de cevaplamaları kolaysa, soru yapmayın.
Edgar Aroutiounian,

8
@EdgarAroutiounian Kendi sorunuzu sormak ve cevaplamak sorun değil ! Bununla birlikte, özel beta sırasında kolay sorular sormaktan kaçınılmalıdır: özel beta, sitenin tonunu belirler.
Gilles 'SO- kötülük yapmayı bırak'

1
Tabii ki kendi sorularınızı cevaplamak elbette iyidir, ancak her biri soruyu sorduktan hemen sonra cevap veren 3 soru geri çevirdiğinizde şüphelenilir.
Edgar Aroutiounian,

2
@EdgarAroutiounian, Jon Ericson basit AZ sorularına cevap vermemizi istiyor. Hoş Geldiniz
Luke

2
Yeterince adil olduğunu düşünüyorum - yeni bir ish kullanıcısı için genellikle çizik tamponunda özel bir şey olmadığı açık değildir ve @ Sigma'nın cevabı oldukça düzenlidir.
Mark Aufflick

Yanıtlar:


28

Sadece ona geçiş yaparak tampon yeniden oluşturmak: C-x b *scratch* RET. Emacs 21.2'den beri, eğer bir tampon oluşturursanız *scratch*, otomatik olarak Lisp Etkileşim moduna girer .


Neden özel bir işleve ihtiyacınız var? Benim için öldürürsem *scratch*ve ona geri dönersem, otomatik olarak lisp-etkileşim moduna geçer.
Tikhon Jelvis

@TikhonJelvis Ah, gerçekten. Bu işleve sahibim, çünkü bunu eski sürümlerde yapmadı (değişiklik 21.2'den yapıldı, ki bu, mutlak terimlerle son değil, toplamımdan daha yeni .emacs).
Gilles 'SO- kötü olmaktan' eylül

Evet. Emacs 21.2 ilk defa bir bilgisayarı kullandığımda piyasaya sürüldü . Bu oldukça büyük bir mutlak fark;).
Tikhon Jelvis 23:14

7

*scratch*Tamponu her silindiğinde otomatik olarak yeniden oluşturmak ve adını yeniden yazmak zorunda kalmaktan kaçınılmaz olabilir.

(defun prepare-scratch-for-kill ()
  (save-excursion
    (set-buffer (get-buffer-create "*scratch*"))
    (add-hook 'kill-buffer-query-functions 'kill-scratch-buffer t)))

(defun kill-scratch-buffer ()
  (let (kill-buffer-query-functions)
    (kill-buffer (current-buffer)))
  ;; no way, *scratch* shall live
  (prepare-scratch-for-kill)
  ;; Since we "killed" it, don't let caller try too
  nil)

(prepare-scratch-for-kill)

3

GNU Emacs varsayılan ciltlemeleri:

C-xb*scratch*

veya daha ayrıntılı

  1. M-xswitch-to-buffer
  2. Yazma: *scratch*
  3. Ve sonra RETtuşa basmak.

*scratch*Tampon başlangıçta seçilen tampon ve önemli modu vardır Lisp Etkileşimi . Not: *scratch*Tamponun modu değişken tarafından kontrol edilir initial-major-mode.


Genel olarak istediğiniz kadar “çizik” tamponu oluşturabilir ve istediğiniz şekilde adlandırın.

C-x bNAME

arabelleğe geçer NAME, yoksa onu oluşturur. Kaydedilmesi gereken bir dosyayı seçmek için C-xC-w(veya M-xwrite-file) kullanana kadar yeni bir arabellek diskteki bir dosyayla ilişkilendirilmez .


M-xtext-mode geçerli arabellek ana modunu Metin moduna değiştirir.

Kullanılabilir tüm modları bulmak için (yani, yeni bir paket gerektirmeden), aşağıdakileri yazarak bir liste alabilirsiniz:

  1. M-xapropos-command
  2. Sonra şunu yazın: -mode$
  3. Ve sonra basın RET

2

Atmak için çizik tamponları kullanmayı seviyorum. Sadece bir tanesine sahip olmak biraz kısıtlayıcı olsa da, scratchyeni bir çizik tamponu açmak için etkileşimli bir emre sahibim (zaten kaç tane var olursa olsun):

(defun scratch ()
  "create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
  (interactive)
  (let ((n 0)
        bufname)
    (while (progn
             (setq bufname (concat "*scratch"
                                   (if (= n 0) "" (int-to-string n))
                                   "*"))
             (setq n (1+ n))
             (get-buffer bufname)))
  (switch-to-buffer (get-buffer-create bufname))
  (if (= n 1) initial-major-mode))) ; 1, because n was incremented

http://everything2.com/index.pl?node_id=1038451 adresinden kabul edilmiştir.


Bunu altı haftadır kullanıyorum. Harika, teşekkürler! Ama ... Dün gece, Windows bilgisayarım kendini yeniden başlattı. Sıfırlama tamponlarımdan veri kaybettim, çünkü M-x recover-sessionbunları kurtarmıyor. Bunu bir şey kullanmak için değiştiren var make-temp-filemı?
daveloyall

1

Boş bir tampon oluşturmayı önerebilir miyim? İlginç olan şey, önce tamponu yaratır ve gerçekten istiyorsan sonra saklarsın.

(defun my-empty-buffer () 
  "Open a new empty buffer."
  (interactive)
  (let ((buf (generate-new-buffer "untitled")))
    (switch-to-buffer buf)
    (funcall (and initial-major-mode))
    (setq buffer-offer-save t)))

İnit dosyanızda lisp olacak şekilde başlangıç-ana-modunu ayarlamanız gerekecek ve benim boş-arabelleği benzeri bir kısayola bağlamalısınız C-n.

Ergoemac'in izniyle

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.