Without exiting normal mode, joining two lines is easy: J
But splitting and auto-indenting a line is a little awkward:
Context | Keyboard |
---|---|
Splitting on cursor | i Enter Esc |
Splitting on one char of whitespace | r Enter |
Splitting on more than one char of whitespace | c i w Enter Esc |
vim-split-line gives the :SplitLine
command. Without leaving normal
mode it:
- Splits the line under the cursor
- Remove trailing whitespace on first line
- Auto-indents second line
Install with a plugin manager.
nnoremap S :SplitLine<CR>
I use S because the default behaviour is almost identical to c c, and it has a nice symmetry with J.
You don't actually need this plugin, the below also works:
nnoremap S :keeppatterns substitute/\s*\%#\s*/\r/e <bar> normal! ==<CR>