org-mode
, Capture-Refile-Archive
mekanizmasına sahiptir. Notları ve günlükleri almak için sık sık kullanırım. Ayrıca kendi kelime bilgimi oluşturmak için kullanmak istiyorum. Örneğin, bazı ingilizce metinleri okurken bazı yeni kelimelerle karşılaştığımda, sözcükleri kelime dosyama Word-List-EN.org
içine kaydetmek için sadece C-c c v e
yazmak istiyorum. Ayrıca bu kelimelerin Harflere göre kategorize edilmesini istiyorum, örneğin , /C/CA
numaralı girişe kaydedilecektir. Esperanto sözcüklerimi vortaro.org
gibi bir dosyaya kaydetmek için C-c c v E
'u yazmak istiyorum. Bunu uygulamak için org-capture-templates
nasıl yapılandırılır? Organizasyon bilgilerini okudum ve hala bir ipucu yok. Kılavuz, (function function-finding-location)
gibi bir şey kullanabileceğimi söylüyor. Ama kendi function-finding-location
'u tanımlamalıyım. Umut elisp ustaları bana yardım edebilir!Kendi kelime dağarcığı oluşturmak için org modu "yakalama rafine" mekanizması nasıl kullanılır?
cevap
Benzer bir şey için org-capture yakalama konusunda çok büyük problemlerim vardı, ama org-remember iyi çalıştı. İşte benim alakalı .emacs bit var:
(require 'org-install)
(setq org-directory "~/.orgfiles/")
(setq org-default-notes-file (expand-file-name "~/.orgfiles/notes.org"))
(setq remember-annotation-functions '(org-remember-annotation))
(setq remember-handler-functions '(org-remember-handler))
(add-hook 'remember-mode-hook 'org-remember-apply-template)
(setq org-agenda-files '("~/.orgfiles"))
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-cc" 'org-remember)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
(setq org-remember-templates
'(("Todo" ?t "* TODO %^{Brief Description} %^g\n%? Added: %U" "~/.orgfiles/TODO.org" "Tasks")
("Idea" ?i "* %^{Brief Description} %^g\n%? Added: %U" "~/.orgfiles/Idea.org" "Ideas")
("Study" ?s "* %^{Brief Description} %^g\n%? Added: %U" "~/.orgfiles/Study.org" "Study")
("Receipt" ?r "** %^{Brief Description} %U %^g\n%?" "~/.orgfiles/Receipt.org")
)
)
Ben pmr şablon parçası olarak bir dosya konumu seçmek için fonksiyonları çok erken ihtiyaçlarınız için gerçekleşmesi gerçeğine konusunda haklı olduğunu düşünüyorum.
Yakalama rafine iş akışına entegre olmanın bir yolu, standart sözcük yakalama şablonu sistemini kullanarak yeni kelimenizi kelime haznesi arabelleğine kopyalamak, ardından özel bir elisp işlevini kanca olarak kullanmak, muhtemelen daha önce yakalama Yeni tanımı doğru konuma yerleştirmek için sonlandırmak
Bir sözcük ve tanım isteyen ve onu doğru yerde bir org arabelleğine ekleyen bir örnek olarak aşağıdaki işlevi yazdım. İhtiyaçlarınıza uyuyorsa, bunu seçtiğiniz bir anahtara bağlayabilir veya kanca yaklaşımı için bir başlangıç noktası olarak kullanabilirsiniz.
;;
;; remove extra spaces between stars and the headline text
;;
(defun tidy-headlines()
(interactive)
(save-excursion
(goto-char (point-min))
(while (re-search-forward "^\\*+\\([[:space:]][[:space:]]+\\)" (point-max) t)
(replace-match " " nil nil nil 1))))
;;
;; function for storing things in vocab files like cashew /C/CA/Cashew
;;
(defun insert-vocab-word (vocab-word definition)
"prompts for a word then opens a vocab file and puts the word in place"
(interactive "sWord: \nsDefinition: ")
(find-file "~/org/vocab.org")
(tidy-headlines)
(goto-char (point-min))
(let* ((first-char (upcase (substring vocab-word 0 1)))
(first-two-chars (upcase (substring vocab-word 0 2))))
(while (and (re-search-forward "^\\* " (point-max) t)
(string< (buffer-substring-no-properties (point) (+ 1 (point))) first-char)))
(if (string= (buffer-substring-no-properties (point) (+ 1 (point))) first-char)
(let* ((end-of-subtree (save-excursion (org-end-of-subtree) (point))))
(while (and (re-search-forward "^\\*\\* " end-of-subtree t)
(string< (buffer-substring-no-properties (point) (+ 2 (point))) first-two-chars)))
(if (string= (buffer-substring-no-properties (point) (+ 2 (point))) first-two-chars)
(let* ((end-of-subtree2 (save-excursion (org-end-of-subtree) (point))))
(while (and (re-search-forward "^\\*\\*\\* " end-of-subtree2 t)
(string< (word-at-point) vocab-word)))
(if (string< vocab-word (word-at-point))
(progn
(beginning-of-line)
(org-insert-heading t))
(org-insert-heading-after-current))
(insert vocab-word)
(org-insert-subheading t)
(insert definition))
(progn
(if (string< first-two-chars (buffer-substring-no-properties (point) (+ 2 (point))))
(progn
(beginning-of-line)
(org-insert-heading t))
(org-insert-heading-after-current))
(insert first-two-chars)
(org-insert-subheading t)
(insert vocab-word)
(org-insert-subheading t)
(insert definition))))
(progn
(org-insert-heading-after-current)
(insert first-char)
(org-insert-subheading t)
(insert first-two-chars)
(org-insert-subheading t)
(insert vocab-word)
(org-insert-subheading t)
(insert definition)))))
Görünüşe göre 'vocab.org' ilk etapta boş olmamalı. – Dror
- 1. Org modu yakalama şablonlarındaki özellikleri kullanma
- 2. org-modu
- 3. Org modu yakalama ve Kötülük - otomatik olarak ekleme moduna gir
- 4. "|" nasıl eklenir? org modu tablosunda
- 5. org modu: komut nasıl girilir
- 6. Org modu vurmalık renk
- 7. Org-Mode - Org-yakalama ile yeni bir dosyayı nasıl oluştururum?
- 8. Emacs org modu yayınlama Ajanda
- 9. Emacs org-modu sıralı listeler
- 10. org modu tabloları ve grafikleri
- 11. Emacs org modu bağımlı görevler
- 12. Org modu tablo hücreleri fontification
- 13. Varsayılan olarak org-girintile modu nasıl etkinleştirilir?
- 14. Kuruluş emojisini değiştirmek için org modu html çıktısı nasıl özelleştirilir?
- 15. Org modu: Bilgi dosyalarına bağlantılar yerleştirme
- 16. Org modu e-tablo programatik uzaktan referanslar
- 17. Emacs org modu dosya/görüntüleyici ilişkilendirmeleri
- 18. Görsel C# nasıl rafine edilir?
- 19. Haftalık yinelenen görevler emacs org modu
- 20. org-modu TODO'ları kaynak kod içinde saklama
- 21. Emacs org modu dışa aktarma işaretleme
- 22. R + Org modu: adlandırma dosyalarını adlandırma nasıl engellenir?
- 23. Emacs Org modu: Günlük yıldönümlerinde özellikleri nasıl ekleyebilirim?
- 24. Evg'de Org modu açık PDF dosyalarını nasıl yapabilirim?
- 25. Kendi iletilerimi oluşturmak için socket.io'nun günlük kayıt sistemine nasıl bağlanırım?
- 26. Bir karışımda önemli anahtar kelime nasıl kullanılır?
- 27. Emacs org modu: arabellek değişkenini ve erişim değişkenini tanımlayın
- 28. Beamer org-modu: bloklar, bindirmeler, blokları ortaya çıkarma arasında duraklatma
- 29. Kendi istemci-sunucu uygulamasında System.IdentityModel nasıl kullanılır?
- 30. Ddply için değişkenler listesi oluşturmak için dize değişkenleri nasıl kullanılır?
Ağacın başlığı//// olmalıdır, yoksa bir alt seviyeyi göstermek için eğik çizgi mi? – pmr
Gördüğüm en büyük sorun şudur: "org-capture", bunu çağırdığınızda bulunduğunuz yere karar verir. Bu, o noktadaki yeri seçemeyeceğiniz anlamına gelir, çünkü bu kelimeyi henüz eklemediniz (mantıklı, hayır mı?). Yani, muhtemelen yakalama yerine özel bir rafa sahip olmalısınız. Sadece yakaladığınız kelimeyi doğru dosyaya ('english.org') gönderin ve ardından özel rafini kullanın. – pmr
Evet,/C/CA, 2-nd sublevel, 'C'' C' altında bir giriş anlamına gelir. – Vivodo