darkcloud-nvimconfig/vim/config/keyboard.vim
Kevin a80b043da6 Spelling mistakes, mistakes that exist in another locale and incorrect
case are now all different colors, and those along with a few other
colours have been tweaked to better matches the theme, and the non-colour
term theme should more closely match too. The F1-F3+F12 toggles
now work in all three editor modes, and F4 has been added to toggle
spellcheck, which also works in all three modes (depending on the
filetype, sometimes it will start on and others off). You can now place
your cursor on an misspelled word in normal mode and hit \\ (backslash
twice) to create a drop down menu with suggestions.
2014-03-27 00:56:54 -04:00

190 lines
7.6 KiB
VimL

"==========================="
" Keyboard Configuration: "
"==========================="
"
" Reference: (view plugin documentation for the full list of commands each offers)
" <Ctrl-z>, | (A) -> enter this following an emme 'word' (ie: html:5)
" <Leader><F2> | (N) -> toggle hexhighlight's hexcode to colours in :gui
" cs'" | (N) -> change surrounding '' to "" (any delimiters work)
" cs"<q> | (N) -> change surrounding "" to the tag: <q></q>
" cst" | (N) -> change any surrounding tag to ""
" ds" | (N) -> delete surrounding ""
"
" Mappings:
" <Ctrl-ScrollUp> | (A) -> scroll right
" <Ctrl-ScrollDown> | (A) -> scroll left
" <Shift-MiddleClick> | (A) -> unbind this from vim so xorg can paste
" <Ctrl-t> | (A) -> open a new tab
" <Ctrl-n> | (A) -> go to the next open tab
" <Ctrl-p> | (A) -> go to the previous open tab
" <Tab> | (V) -> indent a block in visual mode
" <Shift-Tab> | (V) -> unindent a block in visual mode
" \\ | (N) -> show spelling suggestions popup for selection
" ` | (N) -> toggle the nerdtree sidebar
" ~ | (N) -> toggle the tagbar sidebar
" p | (V) -> paste and replace the selection
" <Shift-p> | (N) -> paste and replace the current word
" <F1> | (A) -> toggle line numbers
" <F2> | (A) -> toggle line wrapping
" <F3> | (A) -> toggle row/column highlighting
" <F4> | (A) -> toggle spellcheck
" <F12> | (A) -> toggle collapsed/folded rows
" <Leader><C-f> | (N) -> format document and return to current line
" <Leader><C-w> | (N) -> remove whitespace
" <Ctrl-Up> | (N) -> move to the beginning of the document
" <Ctrl-k> | (N) -> move to the beginning of the document
" <Ctrl-Down> | (N) -> move to the end of the document
" <Ctrl-j> | (N) -> move to the end of the document
" <Ctrl-Right> | (N) -> move to the end of the line
" <Ctrl-l> | (N) -> move to the end of the line
" <Ctrl-Left> | (N) -> move to the beginning of the non-whitespace
" <Ctrl-h> | (N) -> move to the beginning of the line
" <Ctrl-a> | (N) -> select all
" <Shift-Up> | (N) -> select all text above the cursor
" <Shift-k> | (N) -> select all text above the cursor
" <Shift-Down> | (N) -> select all text below the cursor
" <Shift-j> | (N) -> select all text below the cursor
" <Shift-Right> | (N) -> select all text to the right of the cursor
" <Shift-l> | (N) -> select all text to the right of the cursor
" <Shift-Left> | (N) -> select to the beginning of the non-whitespace
" <Shift-h> | (N) -> select to the beginning of the line
"
" (neocomplcache)
" <Tab> | (I) -> write the part common to all suggestions
" <Backspace> | (I) -> cancle the match dialog (during suggestion)
" <Leader><Backspace> | (N) -> undo the most recent match selection
"
" GVim Mappings:
" <Ctrl-F1> | (A) -> toggle the menu
" <Ctrl-F2> | (A) -> toggle the toolbar
" <Ctrl-F3> | (A) -> toggle the scrollbar
"
" Aliases:
" :wsudo | (N) -> :SudoWrite (write the file as root using sudo)
" :esudo | (N) -> :SudoRead (read a file as root using sudo)
"
" Notes:
" *by the default <Leader> key is: \
"
"MAPPINGS: GENERAL KEYBINDINGS AND REBINDINGS {{{
"hold shift to enable middle-click paste
noremap <S-Insert> <MiddleMouse>
noremap! <S-Insert> <MiddleMouse>
"hold ctrl to scroll left/right instead of up/down
noremap <C-ScrollWheelUp> 3zl
noremap <C-ScrollWheelDown> 3zh
"tab and untabbing selected blocks
vnoremap <Tab> >gv
vnoremap <S-Tab> <gv
"press backslash twice on a mispelled word for suggestions
nnoremap \\ ea<C-X><C-S>
"move to the next and previous tabs
nnoremap <silent><expr> <C-t> ':tabnew<CR>'
nnoremap <silent><expr> <C-n> ':tabnext<CR>'
nnoremap <silent><expr> <C-p> ':tabprev<CR>'
"map shift-p to paste over a word, and visual paste to replace selection
vnoremap p "_d"0P
nnoremap <S-p> "_diwP
"unmap F1 from help then map it to toggle the display of line numbers
nnoremap <silent><expr> <F1> ':set number!<CR>'
inoremap <silent><expr> <F1> '<Esc>:set number!<CR>a'
vnoremap <silent><expr> <F1> '<Esc>:set number!<CR>v'
"toggle line wrapping (and bottom bar if using the gui)
if !has("gui_running")
nnoremap <silent><expr> <F2> ':set wrap!<CR>'
inoremap <silent><expr> <F2> '<Esc>:set wrap!<CR>'
vnoremap <silent><expr> <F2> '<Esc>:set wrap!<CR>'
else
nnoremap <silent><expr> <F2> ':set wrap! go'.'-+'[&wrap]."=b\r"
inoremap <silent><expr> <F2> '<Esc>:set wrap! go'.'-+'[&wrap]."=b\ra"
vnoremap <silent><expr> <F2> '<Esc>:set wrap! go'.'-+'[&wrap]."=b\rv"
endif
"toggle the cursor line and column
nnoremap <silent><expr> <F3> ':set cursorline! cursorcolumn!<CR>'
inoremap <silent><expr> <F3> '<Esc>:set cursorline! cursorcolumn!<CR>a'
vnoremap <silent><expr> <F3> '<Esc>:set cursorline! cursorcolumn!<CR>v'
"toggle spellcheck
nnoremap <silent><expr> <F4> ':set spell!<CR>'
inoremap <silent><expr> <F4> '<Esc>:set spell!<CR>a'
vnoremap <silent><expr> <F4> '<Esc>:set spell!<CR>a'
"toggle folded code at foldpoints
inoremap <F12> <C-O>za
nnoremap <F12> za
onoremap <F12> <C-C>za
vnoremap <F12> <Esc>zav
"format the document
nnoremap <Leader><C-f> mzgg=G`z<CR>
"remove trailing white space from the document
nnoremap <silent><expr> <Leader><C-w> ':FixWhitespace<CR>'
"remap keys to scroll through text
nnoremap <C-Up> gg
nnoremap <C-k> gg0
nnoremap <C-Down> G
nnoremap <C-j> G$
nnoremap <C-Right> $
nnoremap <C-l> $
nnoremap <C-Left> ^
nnoremap <C-h> 0
"map remap keys to select text
nnoremap <C-a> ggvG
nnoremap <S-Up> vgg
nnoremap <S-k> vgg0
nnoremap <S-Down> vG
nnoremap <S-j> vG$
nnoremap <S-Right> v$
nnoremap <S-l> v$
nnoremap <S-Left> v^
nnoremap <S-h> v0
"}}}
"PLUGIN KEYBINDINGS {{{
"toggle the nerd tree sidebar
nnoremap <silent><expr> ` ':NERDTree<CR>'
"toggle the tagbar sidebar
nnoremap <silent><expr> ~ ':TagbarToggle<CR>'
"neocomplcache suggestions: cancel, autocomplete, scroll up and scroll down
inoremap <expr><Tab> pumvisible() ? neocomplcache#complete_common_string() : "\<Tab>"
inoremap <expr><Backspace> pumvisible() ? neocomplcache#close_popup() : "\<Backspace>"
inoremap <expr><Leader><Backspace> neocomplcache#undo_completion()
"emmet switch triggerkey from <Ctrl-Y> to <Ctrl-Z>
let g:user_emmet_leader_key='<C-Z>'
"}}}
"TMUX AND SCREEN COMPATIBILITY: SOME HACKS TO MAKE THINGS WORK RIGHT {{{
if $TERM =~ '^screen-256color'
nmap <Esc>OH <Home>
imap <Esc>OH <Home>
nmap <Esc>OF <End>
imap <Esc>OF <End>
endif
"}}}
"GVIM: MAPPINGS FOR GUI ELEMENTS {{{
"map toggles for the menu, toolbar and scrollbar
noremap <silent><expr> <C-F1> ":if &go=~#'m'<Bar>set go-=m<Bar>else<Bar>set go+=m<Bar>endif<CR>"
noremap <silent><expr> <C-F2> ":if &go=~#'T'<Bar>set go-=T<Bar>else<Bar>set go+=T<Bar>endif<CR>"
noremap <silent><expr> <C-F3> ":if &go=~#'r'<Bar>set go-=r<Bar>else<Bar>set go+=r<Bar>endif<CR>"
"}}}
"ALIASES: COMMAND SHORTCUTS {{{
cabbrev wsudo SudoWrite
cabbrev esudo SudoRead
"}}}