All the time when I’m programming, I find myself in the situation where I’m in the middle of a line and want to open a line above or below. Doing this would be accomplished with something like this:
In the above case: C-a, C-m, C-p, <tab>. And in the below case: C-e, C-m, <tab>
That’s a lot of typing for such common tasks. So I created these functions that do exactly what I describe. I also bound a key to each function to have my lines opened much faster.
(defun open-line-above ()
"Open a line above the line the point is at.
Then move to that line and indent accordning to mode"
(interactive)
(move-beginning-of-line 1)
(newline)
(previous-line)
(indent-according-to-mode))
(defun open-line-below ()
"Open a line below the line the point is at.
Then move to that line and indent accordning to mode"
(interactive)
(move-end-of-line 1)
(newline)
(indent-according-to-mode))
This could also be done with macros, but I don’t really like them in these situations.
Bind keys to the functions like this, only replace … with your desired keys:
(global-set-key (kbd "...") 'open-line-above)
(global-set-key (kbd "...") 'open-line-below)