In vim, I can do this in command mode by typing 'o', which will add a new line below the cursor, and enter the insert mode.
Is there an equivalent in emacs?
Insert the line to ". emacs" file. <C + S + Return> that means <Ctrl + Shift + Enter> for new line above. Both will indent also.
Search for "line" under the Text tab. There are lots of "Insert Newline" commands for which you can set key combos. There's Ctrl+o, Cmd+Enter, Opt+Enter, etc.
The command C-o open-line
that others have suggested is not quite the same as o in vi, because it splits the current line and lets the cursor remain in the current line.
You get the exact same effect as vi's o with two strokes: C-e RET, which moves the cursor to the end of the current line and then inserts a new line, which leaves the cursor at the beginning of that line.
You could bind that sequence to a key of its own (perhaps overriding the existing definition of C-o), but I doubt if it's worth the trouble.
(Incidentally, the symmetric sequence C-a RET gives you the effect of vi's capital O, inserting a line before the current line.)
have you solved your problem?
I just solved this problem. Feel free to use this code :)
You can bind to every key you like in the global-set-key
,also to replace newline-and-indent
with newline
in case you don't like the new line to be indented.
;; newline-without-break-of-line
(defun newline-without-break-of-line ()
"1. move to end of the line.
2. insert newline with index"
(interactive)
(let ((oldpos (point)))
(end-of-line)
(newline-and-indent)))
(global-set-key (kbd "<C-return>") 'newline-without-break-of-line)
I am using prelude, and S-RET is equivalent to vi's o and C-S-RET is equivalent to vi's O.
I am using emacs 25
and I have something like this:
;; Insert new line below current line
;; and move cursor to new line
;; it will also indent newline
(global-set-key (kbd "<C-return>") (lambda ()
(interactive)
(end-of-line)
(newline-and-indent)))
;; Insert new line above current line
;; and move cursor to previous line (newly inserted line)
;; it will also indent newline
;; TODO: right now I am unable to goto previous line, FIXIT
(global-set-key (kbd "<C-S-return>") (lambda ()
(interactive)
(beginning-of-line)
(newline-and-indent)
(previous-line)))
Hope it will help :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With