-
-" Ask what to do when closing unsaved documents
-set confirm
-
-" If using a dark background within the editing area and syntax highlighting
-" turn on this option as well
-set background=dark
-
-" The following are commented out as they cause vim to behave a lot
-" differently from regular Vi. They are highly recommended though.
-set showcmd " Show (partial) command in status line.
-set showmatch " Show matching brackets.
-set ignorecase " Do case insensitive matching
-set smartcase " Do smart case matching
-set incsearch " Incremental search
-set autowrite " Automatically save before commands like :next and :make
-"set hidden " Hide buffers when they are abandoned
-"set mouse=a " Enable mouse usage (all modes)
-
-" expand tabs
-set softtabstop=4
-set shiftwidth=4
-set expandtab
-
-set showbreak=▒▒
-" show these chars for tabs and trailing spaces
-set list listchars=tab:»·,trail:·
-
-set pastetoggle=<F11>
-" split right when using :vsp
-set splitright
-
-set scrolloff=3 " keep at least 3 lines above/below
-" Press i to enter insert mode, and ii to exit.
-imap ii <Esc>
-" Press `` to toggle insert and replace mode (no <Insert> key on Mac keyboard)
-imap `` <Insert>
-
-" Jump to the next or previous line that has the same level or a lower
-" level of indentation than the current line.
-"
-" 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(0, 0, 0, 1)<CR>
-nnoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
-nnoremap <silent> [L :call NextIndent(0, 0, 1, 1)<CR>
-nnoremap <silent> ]L :call NextIndent(0, 1, 1, 1)<CR>
-vnoremap <silent> [l <Esc>:call NextIndent(0, 0, 0, 1)<CR>m'gv''
-vnoremap <silent> ]l <Esc>:call NextIndent(0, 1, 0, 1)<CR>m'gv''
-vnoremap <silent> [L <Esc>:call NextIndent(0, 0, 1, 1)<CR>m'gv''
-vnoremap <silent> ]L <Esc>:call NextIndent(0, 1, 1, 1)<CR>m'gv''
-onoremap <silent> [l :call NextIndent(0, 0, 0, 1)<CR>
-onoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
-onoremap <silent> [L :call NextIndent(1, 0, 1, 1)<CR>
-onoremap <silent> ]L :call NextIndent(1, 1, 1, 1)<CR>
-" end of jump indent