Vì vậy, tôi đang cố gắng tạo một "chế độ tự động nhấp nháy" để mô phỏng chức năng của phần mềm ghi chú như Tomboy Notes hoặc Notes.vim, tự động liên kết bất kỳ văn bản nào là tiêu đề của ghi chú. Nhưng tôi hoàn toàn mới với Emacs và Elisp. Đây là những gì tôi có cho đến nay (nó giống như cuốn sách đầu tiên tôi từng viết, hãy nhẹ nhàng):
;; Set directory of files to search for *.org files
(setq autolinks-mode-dir "~/Dropbox/Org/")
;; Get all .org files in this directory.
(setq autolinks-mode-files (directory-files autolinks-mode-dir t "[.]org\\'"))
;; Convert it to a list of just the filenames, without paths.
(setq autolinks-mode-files-bare
(mapcar 'file-name-nondirectory autolinks-mode-files))
;; Strip extensions
(setq autolinks-mode-topics
(mapcar 'file-name-sans-extension autolinks-mode-files-bare))
Càng xa càng tốt. Bây giờ II có một danh sách các chủ đề và một danh sách các tệp tương ứng. Ví dụ: chủ đề "James" tương ứng với tệp org tại "/path/to/notes/James.org". Bây giờ tôi muốn cập nhật thủ công danh sách liên kết của org cho một bộ đệm cụ thể với danh sách chủ đề này, do đó, khi tôi bật chế độ này, nó làm nổi bật bất kỳ trường hợp nào của từ "James" trong bộ đệm org và biến nó thành liên kết đến /path/to/notes/James.org
. Tương tự với tệp org nhiều từ, như "Henry James", sẽ trỏ đến /path/to/notes/Henry James.org
. Lưu ý rằng tôi không cố gắng để thay thế tất cả các trường hợp James
có [[James]]
hay <James>
hoặc một cái gì đó, chỉ cần cố gắng để có được những đoạn văn bản để cư xử như liên kết.
Tôi đã duyệt qua org.el và tôi thấy biến này:
(defvar org-link-re-with-space nil
"Matches a link with spaces, optional angular brackets around it.")
Mà trong hệ thống của tôi có tất cả các loại công cụ trong đó, có thể là do org-ref và những thứ khác:
org-link-re-with-space is a variable defined in ‘org.el’.
Its value is
"<?\\(A\\(?:cp?\\|utocite[*s]?\\)\\|Cite\\(?:a\\(?:l[pt]\\|uthor\\*?\\)\\|[pst]\\)?\\|Gls\\(?:pl\\)?\\|Notecite\\|P\\(?:arencites?\\|notecite\\)\\|Smartcites?\\|Textcites?\\|a\\(?:c\\(?:p\\|r\\(?:full\\|long\\|short\\)\\)?\\|ddbibresource\\|uto\\(?:cite[*s]?\\|ref\\)\\)\\|b\\(?:bdb\\|ib\\(?:entry\\|liography\\(?:style\\)?\\|tex\\)\\)\\|cite\\(?:a\\(?:l\\(?:[pt]\\*\\|[pt]\\)\\|uthor\\*?\\)\\|date\\*?\\|num\\|p\\*\\|t\\(?:\\*\\|ext\\|itle\\*?\\)\\|url\\|year\\*?\\|[*pst]\\)?\\|do\\(?:cview\\|i\\)\\|e\\(?:l\\(?:feed\\|isp\\)\\|qref\\)\\|f\\(?:ile\\(?:\\+\\(?:\\(?:emac\\|sy\\)s\\)\\)?\\|notecite\\|oot\\(?:cite\\(?:s\\|texts?\\)?\\|fullcite\\)\\|tp\\|ullcite\\)\\|g\\(?:ls\\(?:desc\\|link\\|\\(?:p\\|symbo\\)l\\)?\\|nus\\)\\|h\\(?:elp\\|ttps?\\)\\|i\\(?:n\\(?:dex\\|fo\\)\\|pynb\\|rc\\)\\|l\\(?:abel\\|ist-of-\\(?:\\(?:figur\\|tabl\\)es\\)\\)\\|m\\(?:ailto\\|\\(?:essag\\|h\\|u4\\)e\\)\\|n\\(?:ameref\\|ews\\|o\\(?:bibliography\\|\\(?:te\\)?cite\\)\\)\\|orgit\\(?:-\\(?:log\\|rev\\)\\)?\\|p\\(?:a\\(?:geref\\|rencite[*s]?\\)\\|notecite\\|rint\\(?:bibliography\\|index\\)\\)\\|r\\(?:ef\\|mail\\)\\|s\\(?:hell\\|martcites?\\|upercites?\\)\\|textcites?\\|w3m\\):\\([^]
Vì vậy, có vẻ như Org có chức năng để có thể làm nổi bật văn bản đơn giản dưới dạng một liên kết. Tôi chỉ không biết cách tốt nhất để làm điều đó. Tôi nghĩ rằng tôi có thể nối thêm danh sách các từ liên kết của tôi vào org-link-re-with-space
, có thể? Nhưng làm thế nào để tôi đặt mục tiêu của họ? Bất kì sự trợ giúp nào đều được đánh giá cao.
James
có [[file:/path/to/notes/James.org][James]]
trong bộ đệm. Sau đó, nó sẽ xuất hiện dưới dạng một liên kết nếu bộ đệm ở org-mode
chế độ chính.