2

I've known there's similar question How to strike-through or un-strike-through a region or line in org-mode?

but no proper answer they've got yet.

I just wonder how to make wrapped word or sentence with strike-through easily in my org-mode

'*' '=' '_' symbols are working correctly with wrapped word or sentence but '+' not working which I want to use.

is there anyone who knows how to solve this problem?

Thank you!

  • Please specify your org-version. Word or line works OK for me in version 9.1.3, but not for a sentence longer than a line. – Ian Nov 8 '18 at 13:55
  • @Ian org-mode version which I'm using is 9.1.11 :-) – edward0im Nov 8 '18 at 14:09
  • Please check the variable org-emphasis-alist. This controls what is to be bold, italic, etc. Mine has also this: (:strike-through t) . – Ian Nov 8 '18 at 14:53
  • @Ian That's right I checked org-emphasis-alist before but everything is working except for + keyword ;-/ and I just wrote 2 functions that can do strike-through automatically. Thank you for kind help anyway! :-) – edward0im Nov 8 '18 at 14:56
  • Does your functions works for a sentence on more lines or region? If yes, then you can write an answer for the link provided inside question. – Ian Nov 8 '18 at 14:58
1

Use wrap-region to add automatic wrapping to org-mode text characters, including the "+".

 (use-package wrap-region
    :ensure t
    :config
    (wrap-region-global-mode t)
    (wrap-region-add-wrapper "~" "~" nil 'org-mode)  ; code
    (wrap-region-add-wrapper "*" "*" nil 'org-mode)  ; bold
    (wrap-region-add-wrapper "/" "/" nil 'org-mode)  ; italic
    (wrap-region-add-wrapper "+" "+" nil 'org-mode)  ; strikethrough
    (wrap-region-add-wrapper "=" "=" nil 'org-mode)) ; verbatim
  • Oh! That seems like pretty useful package :-) Thank you @Heikki – edward0im Nov 9 '18 at 11:20
1

You can use this function on a single line. put your cursor on a line, then use this function. (for only org-mode)

 (defun strike-through-for-org-mode ()
      (interactive)
      (beginning-of-line)  
      (save-excursion     
        (if (string-prefix-p "*" (thing-at-point 'line t))  
            (progn
              (setq go_char (string-match "[ ]" (thing-at-point 'line t)))  
              (forward-char (+ go_char 1))
              (insert "+")   
              (end-of-line)  
              (insert "+")   
              )
          (if (string-match "[^ ]" (thing-at-point 'line t))  
              (progn
                (setq go_char (string-match "[^ ]" (thing-at-point 'line t)))  
                (forward-char (+ go_char 2))  
                (insert "+")   
                (end-of-line)  
                (insert "+")  
                )
            (message "[-] Not Proper Position!")
            )
          )
        )
      )

(defun strike-through-for-org-mode-undo ()
  (interactive)
  (beginning-of-line) 
  (save-excursion     
    (if (string-match "[+]" (thing-at-point 'line t)) 
        (progn
          (setq go_char (string-match "[+]" (thing-at-point 'line t)))  
          (forward-char go_char) 
          (delete-char 1)  
          (end-of-line)
          (delete-char -1) 
          )
      (message "[-] Not Proper Position!")
      )
    )
    )
  • I've just written some simple functions which can do strike-through automatically in cursor line. hope it helps some people who need this feature – edward0im Nov 8 '18 at 14:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.