Kuruluş modu * çizik * tamponu oluşturmak mümkün mü?


13

Emacs'ta bir belge üzerinde çalışırken kendimi genellikle yeni bir arabellek açarken, org modunda bir şey yaparken, org modu içeriğini kopyalayarak ve belgeme yapıştırarak bulurum. Bunu her yapmam gerektiğinde yeni bir kuruluş modu belgesi oluşturuyordum. Şimdi ~/.scratch.orgbu çalışmamı sürdürdüğüm bir dosyam var.

*org-scratch*Tampona benzer şekilde davranan bir tampon oluşturmak mümkün müdür *scratch*?


3
Orada hiçbir şey sakıncalı yapıyor ile mi M-x org-modesen olduğunuzda *scratch*tampon?
xji

1
@XiangJi Bunu yapmayı bile düşünmedim. Bu güzel bir fikir.
Brian Fitzpatrick

Yanıtlar:


11

*Scratch*Arabellek için ilk ana mod , değişken tarafından kontrol edilir initial-major-mode- değerin bir sembol olması gerekir (bu, layman'ın terimleriyle ana mod adının önüne tek bir tırnak koymak anlamına gelir): http: //www.gnu. org / yazılım / emacs / manuel / html_node / elisp / Oto-Major Mode.html

(setq initial-major-mode 'org-mode)

DÜZENLEME : Orijinal posterin bir yorumuna dayanarak, ana mod ile sırayla dosya ziyaret etmeyen tamponlar oluşturmak için örnek bir işlev aşağıdadır org-mode:

(defun my-scratch-buffer ()
"Create a new scratch buffer -- \*hello-world\*"
(interactive)
  (let ((n 0)
        bufname buffer)
    (catch 'done
      (while t
        (setq bufname (concat "*hello-world"
          (if (= n 0) "" (int-to-string n))
            "*"))
        (setq n (1+ n))
        (when (not (get-buffer bufname))
          (setq buffer (get-buffer-create bufname))
          (with-current-buffer buffer
            (org-mode))
          ;; When called non-interactively, the `t` targets the other window (if it exists).
          (throw 'done (display-buffer buffer t))) ))))

Öyleyse iki *Scratch*arabellek olabilir mi?
Brian Fitzpatrick

Sayısal sırada dosya ziyaret etmeyen yeni arabellekler oluşturan örnek bir işlev ekledim ve bir org-modeatama ekledim . Ad hello-world, kullanıcının işletim sistemi tarafından tanınmasını istediği herhangi bir şeyle değiştirilebilir - örneğin, Windows burukları sevmez.
lawlist

Çok havalı. Buna baktığınız için teşekkürler!
Brian Fitzpatrick

Yardım edebildiğim için mutluyum. Sonucu atmaya ve arabelleği tek bir swoopta göstermeye karar verdim - işlevsellik aynı, ancak işlev bu şekilde biraz daha kompakt görünüyor. :)
hukukçu

11

scratchModa özel çizik arabellekleri oluşturmaya izin veren bir uzantı var . MELPA'dan edinilebilir, bu yüzden kolayca kurabilirsiniz.

Bu paket yüklendiğinde, bir org-modearabellekte olduğunuzda, M-xscratchbir çizik arabelleği almak için çalıştırabilirsiniz org-mode.

Bir önek argümanı verirseniz, modu seçme şansınız olur (o anda etkin olan ana modu seçmek yerine).


Bunu denedim ama emacs çıktıktan sonra sıfırdan tampon silinir düşünüyorum. Orijinal çizik tamponu kendini otomatik olarak kurtarmaz. Bu doğru mu yoksa bir şey mi kaçırdım?
Vivi

1
Özel bir şey yapmadığınız sürece, orijinal *scratch*arabellek oturumlar arasında kalmaz ve emac'lardan çıktığınızda kaydedilmez. emacs -qİnit dosyanız tarafından değiştirilmemiş standart davranışı elde etmek için çalıştırmayı deneyin .
François Févotte

İlginç, bunu bilmiyordum. Bunu yeni araştırdım ve bunun Aquamacs'ın bir özelliği olduğunu öğrendim. Ayrıca Aquamacs'ın başka bir çerçevede yeni bir çizik oluşturmak için tuş bağlama Command-N ile birlikte geldiğini öğrendim (bu, oturumlar arasında kalıcı değil).
Vivi

2
Bu arada, MELPA'da kalıcı çizik tamponları oluşturduğunu iddia eden kalıcı çizik adı verilen bir paket var.
Vivi

5

Bunu başarmak için basit bir yol çalışmasına basitçe olduğunu düşünüyorum M-x org-modeEğer olduğunuzda *snatch*tampon ve böylece sağlayarak org-modedoğrudan. Bu, herhangi bir büyük modu etkinleştirmek için uygulanabilir.


Şimdiye kadarki en basit yol.
user2699

Bu kesinlikle faydalı. Genellikle başka bir şey için çizik arabelleğini kullandığım için yalnızca org moduna ayrılmış bir çizik tamponu olmasını seviyorum.
Brian Fitzpatrick

2

Bunu dene:

  1. Cx b (yeni çizik arabelleğiniz için bir ad yazın, örneğin "asdf")
  2. MX kuruluş modu ("asdf" arabelleğinin ana modunu değiştir)

Bu arabelleği kapatırken içeriğini kaydetmek için bir sorgu almayacaksınız. Yani uygun bir çizik tamponu alıyorsunuz. Ve *scratch*tampon bozulmadan kalır.

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.