I want to be able to toggle soft-wrapped lines in org-mode. My .emacs file has this code:

;; Org Mode ;;

(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-cb" 'org-iswitchb)

;; Start-up with soft-wrap enabled
(setq org-startup-truncated nil)  ; This works
;; Toggle soft-wrap with super-q
(define-key org-mode-map "s-q" 'toggle-truncate-lines)  ; This doesn't

I would like to map it to something like super-q or F7. Is there something wrong with my syntax? Neither works.

  • 1
    (setq truncate-lines nil) equals wrap. (setq truncate-lines t) equals don't wrap. You can make a function (defun () "doc-string" (interactive) (message "This is my function)). You can make a keyboard shortcut . . . . Have fun exploring the possibilities and enjoy your Emacs experience. If you want to break words at word-boundaries at the window edge, then use word-wrap t
    – lawlist
    Jan 24, 2017 at 5:33
  • Thanks. I'm trying a few things. (global-set-key (kbd "s-q") 'toggle-truncate-lines) seems to work for toggling it, but I'm not sure if that is the best way.
    – R891
    Jan 24, 2017 at 5:35
  • 3
    It is only those two variables -- truncate-lines and the optional word-wrap. You may also enjoy using M-x visual-line-mode to toggle on and off.
    – lawlist
    Jan 24, 2017 at 5:36
  • FWIW, even more solutions are proposed for this problem at this pre-e.s.c SuperUser post
    – TomRoche
    Feb 19, 2021 at 20:23

2 Answers 2


To avoid spelling mistakes you should try to use the kbd function for writing the keybinding. My setting therefor looks like:

(global-set-key (kbd "C-x p") 'toggle-truncate-lines)

because I use that keybinding globally (e.g. also in any prog-mode). For your org-mode-map -only change it would look like this:

(define-key org-mode-map (kbd "s-p") 'toggle-truncate-lines)

otherwise you will have to consider regular expression syntax.

Therefor see https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Commands.html:

(global-set-key (kbd "C-x C-\\") 'next-line)
(global-set-key [?\C-x ?\C-\\] 'next-line)
(global-set-key [(control ?x) (control ?\\)] 'next-line)

A bit more manual per file but you can do do:

# -*- truncate-lines: nil -*-

At the top of the org-mode file.

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.