aboutsummaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'plugin')
-rw-r--r--plugin/novim-mode.vim64
1 files changed, 64 insertions, 0 deletions
diff --git a/plugin/novim-mode.vim b/plugin/novim-mode.vim
new file mode 100644
index 0000000..ef72015
--- /dev/null
+++ b/plugin/novim-mode.vim
@@ -0,0 +1,64 @@
+" Make sure insert mode is the default mode when opening/switching to files
+augroup start_insertmode
+ autocmd!
+ autocmd BufEnter * if &modifiable | startinsert | endif
+augroup END
+
+" Copy and paste stuff
+" TODO:
+" * Doesn't work when cursor is on the first col
+" * Support SHIFT+ARROW in visual mode
+inoremap <S-Left> <Esc><Right>v<Left>
+inoremap <S-Right> <Esc><Right>v<Right>
+inoremap <S-Up> <Esc><Right>v<Up>
+inoremap <S-Down> <Esc><Right>v<Down>
+inoremap <C-V> <Esc>pi<Right>
+vnoremap <C-C> y<Esc>i
+vnoremap <C-X> d<Esc>i
+
+" Indenting
+" The `gv` returns you to the exact same selection, so you can repeat the
+" command
+vnoremap <Tab> ><Esc>gv
+vnoremap <S-Tab> <<Esc>gv
+
+" CTRL+q to exit pane/app
+inoremap <C-Q> <C-O>:q<CR>
+
+" Find
+inoremap <C-F> <C-O>/
+inoremap <F3> <C-O>n
+" Clears highlighting. NB. Overriding ESC makes it very hard to get into
+" NORMAL mode.
+inoremap <Esc> <C-O>:noh<CR>
+
+" Undo/redo
+inoremap <silent> <C-U> <C-O>u
+inoremap <silent> <C-R> <C-O><C-R>
+
+" CTRL+s saves
+inoremap <silent> <C-S> <C-O>:update<CR>
+
+" CTRL+k deletes the current line
+inoremap <silent> <C-K> <C-O>"_dd
+
+" CTRL+d duplicates current line
+" TODO: don't put it vim's clipboard, so CTRL+V works as expected
+inoremap <silent> <C-D> <C-O>yy<C-O>p
+
+" Alt+/- moves the current line up and down
+inoremap <silent> <M--> <C-O>:m -2<CR>
+inoremap <silent> <M-=> <C-O>:m +1<CR>
+
+" Home goes back to the first non-whitespace character of the line
+inoremap <silent> <Home> <C-O>^
+
+" Allow text to wrap in text files
+au BufNewFile,BufRead *.txt,*.md,*.markdown setlocal linebreak spell
+" Make arrow keys move through wrapped lines
+" TODO:
+" * Scroll 1 wrapped soft line at a time rather an entire block of wrapped
+" lines.
+au BufNewFile,BufRead *.txt,*.md,*.markdown inoremap <buffer> <Up> <C-O>gk
+au BufNewFile,BufRead *.txt,*.md,*.markdown inoremap <buffer> <Down> <C-O>gj
+