Org-Mode: Làm thế nào để tạo một keybinding của chế độ org org


11

Tôi biết tôi có thể sử dụng *bold*, /italic/, _underline_, =verbatim=, ~code~, và +strike-through+để áp dụng đánh dấu văn bản trong org-mode. Nhưng làm cách nào để tạo các ràng buộc chính để áp dụng các thay đổi này cho một vùng văn bản? Ví dụ: nếu tôi muốn làm đậm một số văn bản, có cách nào dễ hơn

  1. điều hướng đến phía trước của văn bản
  2. tiền tố nó với một *
  3. điều hướng đến cuối văn bản
  4. nối thêm một *?

Tôi dường như không thể tìm thấy bất kỳ lệnh nào "in đậm" một đoạn văn bản, chẳng hạn như org-make-region-bold. Có một lệnh như vậy?

Câu trả lời:


12
  1. Đánh dấu bạn khu vực
  2. Nhấn vào C-c C-x C-f *cho đậm , C-c C-x C-f /cho in nghiêng , vv

org-nhấn mạnh là một hàm Lisp được biên dịch tương tác trong 'org.el'.

(org-nhấn mạnh & tùy chọn CHAR)

Chèn hoặc thay đổi một điểm nhấn, tức là một phông chữ như in đậm hoặc in nghiêng. Nếu có một khu vực hoạt động, thay đổi khu vực đó sang một điểm nhấn mới. Nếu không có vùng, chỉ cần chèn các ký tự đánh dấu và định vị con trỏ giữa chúng. CHAR phải là ký tự đánh dấu. Nếu đó là một khoảng trắng, có nghĩa là loại bỏ sự nhấn mạnh của vùng đã chọn. Nếu CHAR không được đưa ra (ví dụ trong một cuộc gọi tương tác), nó sẽ được nhắc nhở.


8

Bạn có thể sử dụng 1 để tạo điều kiện chèn các ký tự đánh dấu vào . Thêm mã sau vào tệp init của bạn:electric-pair-modeorg-mode

(electric-pair-mode 1)

(defvar org-electric-pairs '((?\* . ?\*) (?/ . ?/) (?= . ?=)
                             (?\_ . ?\_) (?~ . ?~) (?+ . ?+)) "Electric pairs for org-mode.")

(defun org-add-electric-pairs ()
  (setq-local electric-pair-pairs (append electric-pair-pairs org-electric-pairs))
  (setq-local electric-pair-text-pairs electric-pair-pairs))

(add-hook 'org-mode-hook 'org-add-electric-pairs)

Với điều này tại chỗ, tất cả các bạn cần phải làm gì để quấn một khu vực với các nhân vật mark-up là báo chí nhân vật tương ứng ( *, /, =, _, ~, hoặc +) một lần.

Là một lợi ích bổ sung, Emacs sẽ tự động chèn các cặp ký tự đánh dấu phù hợp tại điểm nếu không có vùng. Ví dụ, nhấn *sẽ chèn **và chừa điểm giữa hai ký tự để bạn có thể tiếp tục nhập mà không phải di chuyển điểm.


1 Chế độ này được tích hợp sẵn; không cần phải cài đặt bất kỳ gói của bên thứ ba nào để sử dụng nó.


1
Cảm ơn bạn! Thành thật mà nói, đây là câu trả lời rõ ràng và đơn giản nhất. Điều ngạc nhiên ngọt ngào là electric-pair-modecũng áp dụng cặp cho một khu vực được chọn. Tôi luôn luôn mặc dù các cặp điện chỉ để chèn các cặp.
ephsmith

2
Vấn đề với cách tiếp cận này là */thường được sử dụng trong các tài liệu chế độ Org điển hình, ví dụ: *bắt đầu một tiêu đề. Tương tự như vậy nếu bạn đang gõ một dấu gạch chéo trong văn bản dạng dài, ví dụ như có một dấu gạch chéo bổ sung mà bạn cần xóa mỗi lần.
Bệnh dịch hạch

5

Bạn có thể sử dụng wrap-regiongói (cũng có sẵn trên Melpa) để bọc một vùng với bất kỳ ký tự nào bạn chọn. Điều này tất nhiên có thể được cấu hình cho mỗi chế độ chính.

(require 'wrap-region)

(add-hook 'org-mode-hook #'wrap-region-mode)

(wrap-region-add-wrapper "=" "=" nil 'org-mode) ; select region, hit = then region -> =region= in org-mode
(wrap-region-add-wrapper "*" "*" nil 'org-mode) ; select region, hit * then region -> *region* in org-mode
(wrap-region-add-wrapper "/" "/" nil 'org-mode) ; select region, hit / then region -> /region/ in org-mode
(wrap-region-add-wrapper "_" "_" nil 'org-mode) ; select region, hit _ then region -> _region_ in org-mode
(wrap-region-add-wrapper "+" "+" nil 'org-mode) ; select region, hit + then region -> +region+ in org-mode

Các expand-regiongói bổ sung cho gói này rất tốt (cũng có sẵn trong Melpa).

Sử dụng

  • Bạn chọn từ hoặc cụm từ bằng cách sử dụng ràng buộc chính bạn đã chọn er/expand-region.
  • Nhấn *để nhấn mạnh vùng đó là đậm (in org-mode).

0

Người dùng của Evil có thể sử dụng chế độ phụ bao quanh ác để đối phó với các loại đánh dấu khác nhau. Bạn có thể thêm đánh dấu vào lựa chọn trực quan với S(theo mặc định) hoặc cho các đối tượng văn bản ở chế độ bình thường với ys.

Bạn cũng có thể thay đổi hoặc xóa một số đánh dấu. Tuy nhiên, để thay đổi hoặc xóa các điểm đánh dấu không được biết đến theo mặc định, bạn sẽ cần thêm chúng vào Evil dưới dạng đối tượng văn bản .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.