Kuruluş kipinde kaynak kod bloğunu otomatik olarak biçimlendirme


11

Bir kitapla ilgili notlar almak için kuruluş modunu kullanırken, bazen bazı kod snippet'lerini not dosyasına kopyalayıp yapıştıracağım. Yapıştırdıktan sonra,

1. `C-c '` to call `org-edit-special`
2. `C-x h` to mark all the source code
3. `TAB` to format it

Org-modunda, kodu yapıştırdıktan sonra #+BEGIN_SRC...#+END_SRCotomatik olarak kod bloğunu biçimlendirecek bir çözüm var mı yoksa TABtüm kaynak kodu bloğunu biçimlendirmek (girintilemek) gibi sadece bir anahtar kullanabilir miyim ?

Varsayılan TAB(bloğa yazılır, kullanılmaz C-c ') #+BEGIN_SRCbaşlıktan sonra tüm satırları 2 sütun hizalar , ikinci satırın başında boşluklar varsa, sadece daha fazla boşluk ekler, 3 adım gibi tüm satırları girintilemez.

Yanıtlar:


7

Aşağıda zor bir çözüm, ancak mükemmel çalışıyor. Aslında bu sadece işlemlerinizi simüle eden bir işlevdir ve run-at-timeher 10 saniyede bir çağrılması için a'yı kullanır. Şerefe.

(defun indent-org-block-automatically ()
  (when (org-in-src-block-p)
   (org-edit-special)
    (indent-region (point-min) (point-max))
    (org-edit-src-exit)))

(run-at-time 1 10 'indent-org-block-automatically)

Tabii ki, her 1 saniyede bir aramasını yapabilirsiniz, sadece 10'u 1'e değiştirin.


Ben ihtiyacım yok run-at-timeben bağlama nasıl, aslında TABanahtar varsayılan yerine bunları yapabilecek TABzaman org-in-src-block-p. Varsayılan TAB, bağlı yas-expandancak yazımda söylediğim gibi şeyler yapacak.
Aralık'ta CodyChan


0

Bu sorunu çözmek için yazdığım kod:

(defun udf/my-org-tab-dwim (&optional arg)
  (interactive)
  (or (org-babel-do-key-sequence-in-edit-buffer (kbd "TAB"))
      (org-cycle arg)))

(define-key org-mode-map
  (kbd "<tab>") #'udf/my-org-tab-dwim)
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.