S-RET -> insert literal newline

A convention on many text editors and applications is to make RET
auto-indent new lines. That has already been done. Another convention is
for S-RET to insert an unindented line; this commit adds this convention
to Doom.

Relevant to #3694
This commit is contained in:
Henrik Lissner 2020-08-05 18:02:40 -04:00
parent 9a5175dd0e
commit 863eb82efd
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
5 changed files with 19 additions and 8 deletions

View file

@ -271,6 +271,15 @@ If on a:
(org-element-property :begin context)
(org-element-property :end context)))))))
;;;###autoload
(defun +org/shift-return (&optional arg)
"Insert a literal newline, or dwim in tables.
Executes `org-table-copy-down' if in table."
(interactive "p")
(if (org-at-table-p)
(org-table-copy-down arg)
(org-return nil arg)))
;; I use these instead of `org-insert-item' or `org-insert-heading' because they
;; impose bizarre whitespace rules depending on cursor location and many

View file

@ -643,6 +643,7 @@ between the two."
"C-c C-S-l" #'+org/remove-link
"C-c C-i" #'org-toggle-inline-images
;; textmate-esque newline insertion
"S-RET" #'+org/shift-return
"C-RET" #'+org/insert-item-below
"C-S-RET" #'+org/insert-item-above
"C-M-RET" #'org-insert-subheading
@ -999,6 +1000,8 @@ compelling reason, so..."
;; more intuitive RET keybinds
:i [return] (cmd! (org-return t))
:i "RET" (cmd! (org-return t))
:i [S-return] #'+org/shift-return
:i "S-RET" #'+org/shift-return
:n [return] #'+org/dwim-at-point
:n "RET" #'+org/dwim-at-point
;; more vim-esque org motion keys (not covered by evil-org-mode)