summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2015-09-20 15:43:20 -0600
committerJoe Zhao <ztuowen@gmail.com>2015-09-20 15:43:20 -0600
commit4bdf3190cbd4d247ed95a80a8fce633eb45a66f5 (patch)
tree5caac70417ae7c6fec15d4c94b06d3c15588425f
parent07b810ddbf15ab1e2a35b8f702fb6e6cca1b148b (diff)
downloadvim-4bdf3190cbd4d247ed95a80a8fce633eb45a66f5.tar.gz
vim-4bdf3190cbd4d247ed95a80a8fce633eb45a66f5.tar.bz2
vim-4bdf3190cbd4d247ed95a80a8fce633eb45a66f5.zip
added some keybindings from phil's repo
-rw-r--r--config/bindings.vim87
1 files changed, 87 insertions, 0 deletions
diff --git a/config/bindings.vim b/config/bindings.vim
new file mode 100644
index 0000000..3ddc4f9
--- /dev/null
+++ b/config/bindings.vim
@@ -0,0 +1,87 @@
+" set leader to ,
+let mapleader=","
+let g:mapleader=","
+
+cnoremap <C-F> <Right>
+cnoremap <C-B> <Left>
+inoremap <C-F> <Right>
+inoremap <C-B> <Left>
+inoremap <C-N> <Down>
+inoremap <C-P> <Up>
+
+" indent jumps
+" <[l>, <]l>: exclusive jump to prev/next line with lower indent
+"
+" exclusive (bool): true: Motion is exclusive
+" false: Motion is inclusive
+" fwd (bool): true: Go to next line
+" false: Go to previous line
+" lowerlevel (bool): true: Go to line with lower indentation level
+" false: Go to line with the same indentation level
+" skipblanks (bool): true: Skip blank lines
+" false: Don't skip blank lines
+function! NextIndent(exclusive, fwd, lowerlevel, skipblanks)
+ let line = line('.')
+ let column = col('.')
+ let lastline = line('$')
+ let indent = indent(line)
+ let stepvalue = a:fwd ? 1 : -1
+ while (line > 0 && line <= lastline)
+ let line = line + stepvalue
+ if ( ! a:lowerlevel && indent(line) == indent ||
+ \ a:lowerlevel && indent(line) < indent)
+ if (! a:skipblanks || strlen(getline(line)) > 0)
+ if (a:exclusive)
+ let line = line - stepvalue
+ endif
+ exe line
+ exe "normal " column . "|"
+ return
+ endif
+ endif
+ endwhile
+endfunction
+" Moving back and forth between lines of same or lower indentation.
+nnoremap <silent> [l :call NextIndent(1, 0, 1, 1)<CR>
+nnoremap <silent> ]l :call NextIndent(1, 1, 1, 1)<CR>
+vnoremap <silent> [l <Esc>:call NextIndent(1, 0, 1, 1)<CR>m'gv''
+vnoremap <silent> ]l <Esc>:call NextIndent(1, 1, 1, 1)<CR>m'gv''
+onoremap <silent> [l :call NextIndent(1, 0, 1, 1)<CR>
+onoremap <silent> ]l :call NextIndent(1, 1, 1, 1)<CR>
+
+:command GT GhcModType
+:command GTC GhcModTypeClear
+:command GC GhcModCheckAndLintAsync
+
+" Type of expression under cursor
+nmap <silent> <leader>ht :GhcModType<CR>
+" Insert type of expression under cursor
+nmap <silent> <leader>hT :GhcModTypeInsert<CR>
+" GHC errors and warnings
+nmap <silent> <leader>hc :SyntasticCheck ghc_mod<CR>
+" Haskell Lint
+nmap <silent> <leader>hl :SyntasticCheck hlint<CR>
+
+" Hoogle the word under the cursor
+nnoremap <silent> <leader>hh :Hoogle<CR>
+
+" Hoogle and prompt for input
+nnoremap <leader>hH :Hoogle
+
+" Hoogle for detailed documentation (e.g. "Functor")
+nnoremap <silent> <leader>hi :HoogleInfo<CR>
+
+" Hoogle for detailed documentation and prompt for input
+nnoremap <leader>hI :HoogleInfo
+
+" Hoogle, close the Hoogle window
+nnoremap <silent> <leader>hz :HoogleClose<CR>
+
+" thanks to vim-slime, we can send v-mode selection to tmux by Ctrl-C Ctrl-C
+
+:command SP ConqueTermSplit zsh
+:command VSP ConqueTermVSplit zsh
+:command NL NeoCompleteLock
+:command Black colors badwolf
+:command Pretty colors solarized
+