|
|
@@ -1,6 +1,7 @@
|
|
|
if has("autocmd")
|
|
|
|
|
|
" Show trailing white space
|
|
|
+ highlight ExtraWhitespace ctermfg=red ctermbg=red guifg=red guibg=red
|
|
|
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
|
|
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
|
|
|
|
|
@@ -33,21 +34,20 @@ set colorcolumn=+1 " mark out the limits of the textwidth
|
|
|
|
|
|
|
|
|
""""""""
|
|
|
-"" UI - Colours
|
|
|
-""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
+"" UI - Mouse & Cursor
|
|
|
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
+set virtualedit=block " Freedom of movement in visual block mode
|
|
|
|
|
|
-set t_Co=16
|
|
|
+" The following two settings are related to how vim reacts to the incoming $TERM
|
|
|
+" value from either the terminal emulator (e.g. iTerm2) or tmux. In the best
|
|
|
+" case, both of these should be set to xterm-256color. This will result in vim
|
|
|
+" reacting with the settings below:
|
|
|
+"set t_Co=256
|
|
|
+"set ttymouse=xterm2 " Needed to allow mouse support to resize windows
|
|
|
+"set ttyfast " Allows for instantaneous refresh when using the mouse to select
|
|
|
|
|
|
-" show trailing white space
|
|
|
-highlight ExtraWhitespace ctermfg=red ctermbg=red guifg=red guibg=red
|
|
|
-
|
|
|
-" reverse indent guides highlighting
|
|
|
-highlight IndentGuidesOdd ctermbg=darkgrey
|
|
|
-highlight IndentGuidesEven ctermbg=black
|
|
|
-
|
|
|
-""""""""
|
|
|
-"" UI - Statusline (now using powerline)
|
|
|
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
+" Have not gotten solarized to work properly yet highlighting of cursor,
|
|
|
+" width limit line and number and fold columns are wrong.
|
|
|
|
|
|
|
|
|
""""""""
|
|
|
@@ -69,9 +69,8 @@ inoremap jk <ESC>
|
|
|
" Add extra lines up and down
|
|
|
nnoremap <leader>j o<Esc>k
|
|
|
nnoremap <leader>k O<Esc>j
|
|
|
-
|
|
|
-" Edit .vimrc
|
|
|
-"nnoremap <leader>v :e $MYVIMRC<CR>
|
|
|
+" Get rid of spf13-vim's python/json mapping, which interferes with the above
|
|
|
+nunmap <leader>jt
|
|
|
|
|
|
" Clear trailing white space
|
|
|
nnoremap <silent> <leader>$ :%s/\s\+$//g<CR>
|
|
|
@@ -82,7 +81,13 @@ nnoremap <silent> <leader><TAB> :%s/<TAB>/ /g<CR>
|
|
|
" Backspace to clear current search (and stop highlighting)
|
|
|
nnoremap <silent> <backspace> :call ClearSearch()<CR>
|
|
|
|
|
|
-nnoremap <silent> <leader>n :set number!<CR>
|
|
|
+function! ClearSearch()
|
|
|
+ if (@/ != "")
|
|
|
+ let @/=""
|
|
|
+ redraw
|
|
|
+ endif
|
|
|
+endfunction
|
|
|
+
|
|
|
nnoremap <silent> <leader>w :set wrap!<CR>
|
|
|
|
|
|
" Toggle paste mode - no autoindenting of pasted material
|
|
|
@@ -92,16 +97,43 @@ nnoremap <silent> <leader>p :set paste! paste?<CR>
|
|
|
nnoremap <silent> <leader>l :set list!<CR>
|
|
|
|
|
|
" Toggle keyboard layout
|
|
|
-nnoremap <silent> <leader><space> :call CycleKeymap()<CR>
|
|
|
+"nnoremap <silent> <leader><space> :call CycleKeymap()<CR>
|
|
|
+
|
|
|
+"function! CycleKeymap()
|
|
|
+ "if has('keymap')
|
|
|
+ "if (&keymap == '')
|
|
|
+ "set keymap=colemak
|
|
|
+ "echo 'Colemak keymap selected'
|
|
|
+ "elseif (&keymap == 'colemak')
|
|
|
+ "set keymap=dvorak
|
|
|
+ "echo 'Dvorak keymap selected'
|
|
|
+ "else
|
|
|
+ "set keymap=
|
|
|
+ "echo 'Qwerty keymap selected'
|
|
|
+ "endif
|
|
|
+ "else
|
|
|
+ "echo 'Keymaps not supported'
|
|
|
+ "endif
|
|
|
+"endfunction
|
|
|
|
|
|
" Toggle scrollbind for moving multiple splits in sync together
|
|
|
nnoremap <silent> <leader>sb :set scrollbind! scrollbind?<CR>
|
|
|
|
|
|
" Toggle mouse support.
|
|
|
-"nnoremap <silent> <leader>m :call ToggleMouse()<CR>
|
|
|
+nnoremap <silent> <leader>m :call ToggleMouse()<CR>
|
|
|
+
|
|
|
+function! ToggleMouse()
|
|
|
+ if &mouse == 'a'
|
|
|
+ set mouse=
|
|
|
+ echo 'Mouse usage disabled'
|
|
|
+ else
|
|
|
+ set mouse=a
|
|
|
+ echo 'Mouse usage enabled'
|
|
|
+ endif
|
|
|
+endfunction
|
|
|
|
|
|
" Toggle NERDTree file browser
|
|
|
-nnoremap <silent> <leader>d :NERDTreeToggle<CR>
|
|
|
+nnoremap <silent> <leader>d :NERDTreeMirrorToggle<CR>
|
|
|
|
|
|
" Toggle Commenting out lines with NERDCommenter
|
|
|
nnoremap <silent> <leader>, :call NERDComment("n", "toggle")<CR>
|
|
|
@@ -109,7 +141,7 @@ vnoremap <silent> <leader>, <ESC>:call NERDComment("x", "toggle")<CR>
|
|
|
|
|
|
" Git commands with Fugitive
|
|
|
nnoremap <silent> <leader>gc :Gcommit -v<CR>
|
|
|
-"nnoremap <silent> <leader>gl :Glog<CR><CR>
|
|
|
+nnoremap <silent> <leader>gl :Glog<CR><CR>
|
|
|
nnoremap <silent> <leader>gap :Git add -p<CR>
|
|
|
|
|
|
" Function definition jumping with CtrlP's Funky plugin
|
|
|
@@ -125,7 +157,7 @@ nmap L $
|
|
|
vmap H ^
|
|
|
vmap L $
|
|
|
|
|
|
-" Smart way to move between windows
|
|
|
+" Smart way to move between windows, without spf13-vim's vertical maximisation.
|
|
|
"nnoremap <C-j> <C-w>j
|
|
|
"nnoremap <C-k> <C-w>k
|
|
|
"nnoremap <C-h> <C-w>h
|
|
|
@@ -148,6 +180,14 @@ vmap L $
|
|
|
"xnoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
"xnoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
|
|
|
+"function! ScreenMovement(movement)
|
|
|
+ "if &wrap
|
|
|
+ "return 'g' . a:movement
|
|
|
+ "else
|
|
|
+ "return a:movement
|
|
|
+ "endif
|
|
|
+"endfunction
|
|
|
+
|
|
|
|
|
|
""""""""
|
|
|
"" Plugin options
|
|
|
@@ -165,6 +205,9 @@ let g:tagbar_autoclose = 1 " close sidebar after we go to selection
|
|
|
""""""""" Indent Guides
|
|
|
let g:indent_guides_auto_colors = 0
|
|
|
let g:indent_guides_guide_size = 2
|
|
|
+" reverse indent guides highlighting
|
|
|
+"highlight IndentGuidesOdd ctermbg=grey
|
|
|
+highlight IndentGuidesEven ctermbg=black
|
|
|
|
|
|
|
|
|
""""""""" Syntastic
|
|
|
@@ -188,57 +231,11 @@ let g:vdebug_options = {
|
|
|
let g:vim_markdown_folding_disabled = 1
|
|
|
|
|
|
|
|
|
-""""""""" Sparkup
|
|
|
-let g:sparkupNextMapping = '<leader>n' " resolve conflict with vim-multiple-cursors
|
|
|
-
|
|
|
""""""""" PIV
|
|
|
let g:DisableAutoPHPFolding = 1
|
|
|
|
|
|
""""""""
|
|
|
"" Functions
|
|
|
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
-
|
|
|
-function! ToggleMouse()
|
|
|
- if &mouse == 'a'
|
|
|
- set mouse=
|
|
|
- echo "Mouse usage disabled"
|
|
|
- else
|
|
|
- set mouse=a
|
|
|
- echo "Mouse usage enabled"
|
|
|
- endif
|
|
|
-endfunction
|
|
|
-
|
|
|
-function! ScreenMovement(movement)
|
|
|
- if &wrap
|
|
|
- return "g" . a:movement
|
|
|
- else
|
|
|
- return a:movement
|
|
|
- endif
|
|
|
-endfunction
|
|
|
-
|
|
|
-function! ClearSearch()
|
|
|
- if (@/ != "")
|
|
|
- let @/=""
|
|
|
- redraw
|
|
|
- endif
|
|
|
-endfunction
|
|
|
-
|
|
|
-function! CycleKeymap()
|
|
|
- if has('keymap')
|
|
|
- if (&keymap == '')
|
|
|
- set keymap=colemak
|
|
|
- echo "Colemak keymap selected"
|
|
|
- elseif (&keymap == 'colemak')
|
|
|
- set keymap=dvorak
|
|
|
- echo "Dvorak keymap selected"
|
|
|
- else
|
|
|
- set keymap=
|
|
|
- echo "Qwerty keymap selected"
|
|
|
- endif
|
|
|
- else
|
|
|
- echo "Keymaps not supported"
|
|
|
- endif
|
|
|
-endfunction
|
|
|
|
|
|
for filePath in split(globpath('~/dotfiles/vim/settings', '*.vim'), '\n')
|
|
|
execute 'source' filePath
|