|
|
@@ -1,58 +1,31 @@
|
|
|
-set nocompatible " Don't have to try to be compatible with old vi
|
|
|
-
|
|
|
-""""""""
|
|
|
-"" Plugin Loading with Pathogen
|
|
|
+"""""""
|
|
|
+"" Remove Unwanted Bundles
|
|
|
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
-runtime bundle/vim-pathogen/autoload/pathogen.vim
|
|
|
-call pathogen#infect()
|
|
|
-call pathogen#helptags()
|
|
|
|
|
|
+" We use our own powerline install
|
|
|
+UnBundle 'bling/vim-airline'
|
|
|
|
|
|
-""""""""
|
|
|
-"" General Behaviours
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
+" Great, but is slow when you work through tunnels, which I do a LOT.
|
|
|
+UnBundle 'airblade/vim-gitgutter'
|
|
|
|
|
|
-set encoding=utf-8
|
|
|
-set splitbelow " New splits appear below current window instead of above
|
|
|
-set splitright " New splits appear right of current window
|
|
|
-set ttyfast " Smooth movement
|
|
|
-set ttymouse=xterm2
|
|
|
-set mouse=a
|
|
|
-set scrolloff=4 " keep distance from top and bottom for current line
|
|
|
-set cursorline " ensure that there is a cursor line
|
|
|
-set noswapfile " don't use swap files. We save often & have persistent undo.
|
|
|
-
|
|
|
-" Persistent undo
|
|
|
-if has("persistent_undo")
|
|
|
- set undofile
|
|
|
- set undodir=~/.vim/undo
|
|
|
-endif
|
|
|
+" This is not a fantastic idea, and is slow when working through tunnels.
|
|
|
+UnBundle 'myusuf3/numbers.vim'
|
|
|
|
|
|
+" Never go used to this
|
|
|
+UnBundle 'Lokaltog/vim-easymotion'
|
|
|
|
|
|
-""""""""
|
|
|
-"" Autocommands
|
|
|
-"""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
-
|
|
|
-if has("autocmd")
|
|
|
- " Enable filetype specific features
|
|
|
- filetype plugin indent on
|
|
|
+" Don't care about gvim... yet.
|
|
|
+UnBundle 'godlygeek/csapprox'
|
|
|
|
|
|
- " Clear existing autocmd
|
|
|
- autocmd!
|
|
|
|
|
|
- " When editing a file, always jump to the last cursor position
|
|
|
- " (from Ubuntu's `/etc/vim/vimrc`)
|
|
|
- autocmd BufReadPost *
|
|
|
- \ if line("'\"") > 0 && line ("'\"") <= line("$") |
|
|
|
- \ exe "normal! g'\"" |
|
|
|
- \ endif
|
|
|
+if has("autocmd")
|
|
|
|
|
|
" Show trailing white space
|
|
|
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
|
|
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
|
|
|
|
|
" Source the vimrc file after saving it
|
|
|
- autocmd BufWritePost .vimrc nested source $MYVIMRC
|
|
|
+ autocmd BufWritePost .vimrc.local nested source $MYVIMRC
|
|
|
|
|
|
" QuickFix - Local remaps:
|
|
|
" - `q` to close qf buffer
|
|
|
@@ -94,8 +67,6 @@ if has("autocmd")
|
|
|
autocmd FileType php set keywordprg=pman
|
|
|
endif
|
|
|
|
|
|
-else
|
|
|
- set autoindent on
|
|
|
endif
|
|
|
|
|
|
|
|
|
@@ -103,17 +74,13 @@ endif
|
|
|
"" Tabs and Text Formatting
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
|
|
-set expandtab " change to single spaces
|
|
|
set tabstop=2 " actual tab press distance
|
|
|
set shiftround " indent to nearest tabstops
|
|
|
set shiftwidth=2 " amount to indent with > and <
|
|
|
set smarttab " backspace tabs where appropriate even if spaces
|
|
|
set softtabstop=2 " let backspace delete by indents
|
|
|
-set nowrap " do not wrap long lines of text
|
|
|
-set backspace=eol,start,indent "backspace over everything
|
|
|
set textwidth=80 " try to keep text within 80 characters
|
|
|
set colorcolumn=+1 " mark out the limits of the textwidth
|
|
|
-set listchars=trail:_,tab:>.,eol:$
|
|
|
set fillchars=fold:.
|
|
|
|
|
|
|
|
|
@@ -121,10 +88,7 @@ set fillchars=fold:.
|
|
|
"" UI - Colours
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
|
|
-syntax enable
|
|
|
-colorscheme solarized
|
|
|
set t_Co=16
|
|
|
-set background=dark
|
|
|
|
|
|
" set colour for folded lines
|
|
|
highlight Folded term=none cterm=none ctermfg=darkred ctermbg=none
|
|
|
@@ -136,20 +100,10 @@ highlight ExtraWhitespace ctermfg=red ctermbg=red guifg=red guibg=red
|
|
|
highlight IndentGuidesOdd ctermbg=darkgrey
|
|
|
highlight IndentGuidesEven ctermbg=black
|
|
|
|
|
|
-
|
|
|
-""""""""
|
|
|
-"" UI - Numbering
|
|
|
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
-
|
|
|
-set number " show line numbers
|
|
|
-
|
|
|
-
|
|
|
""""""""
|
|
|
"" UI - Statusline (now using powerline)
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
|
|
-set laststatus=2 " status line is second last line (not hidden by commands)
|
|
|
-
|
|
|
|
|
|
""""""""
|
|
|
"" UI - Code Folding
|
|
|
@@ -160,45 +114,20 @@ set foldlevel=10
|
|
|
set foldtext=FoldText()
|
|
|
|
|
|
|
|
|
-""""""""
|
|
|
-"" UI - Search
|
|
|
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
-
|
|
|
-set hlsearch " make searches highlighted
|
|
|
-set incsearch " vim will search as you type!
|
|
|
-set ignorecase " ignore case for searches
|
|
|
-set smartcase " well, unless a user puts in uppercase search characters
|
|
|
-set magic " enables wildcard searching
|
|
|
-
|
|
|
-" use ack for grepping if available
|
|
|
-if executable('ack-grep')
|
|
|
- set grepprg=ack-grep\ --with-filename\ --nocolor\ --nogroup
|
|
|
-elseif executable('ack')
|
|
|
- set grepprg=ack\ --with-filename\ --nocolor\ --nogroup
|
|
|
-endif
|
|
|
-set shellpipe=&> " don't display ack/grep terminal output. NOTE: not reliable
|
|
|
- " https://github.com/mileszs/ack.vim/issues/18
|
|
|
-
|
|
|
-
|
|
|
""""""""
|
|
|
"" Key Remaps
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
|
|
-let mapleader = "," " easier to use than \
|
|
|
-
|
|
|
" More convenient escape
|
|
|
inoremap kj <ESC>
|
|
|
inoremap jk <ESC>
|
|
|
|
|
|
-" Yank to end of line, like D deletes to end of line
|
|
|
-nnoremap Y y$
|
|
|
-
|
|
|
" 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>
|
|
|
+"nnoremap <leader>v :e $MYVIMRC<CR>
|
|
|
|
|
|
" Clear trailing white space
|
|
|
nnoremap <silent> <leader>$ :%s/\s\+$//g<CR>
|
|
|
@@ -215,8 +144,6 @@ nnoremap <silent> <backspace> :call ClearSearch()<CR>
|
|
|
nnoremap <silent> <leader>n :set number!<CR>
|
|
|
nnoremap <silent> <leader>w :set wrap!<CR>
|
|
|
|
|
|
-nnoremap <silent> <leader>80 gggqG<C-o><C-o>
|
|
|
-
|
|
|
" Toggle paste mode - no autoindenting of pasted material
|
|
|
nnoremap <silent> <leader>p :set paste! paste?<CR>
|
|
|
|
|
|
@@ -227,10 +154,10 @@ nnoremap <silent> <leader>l :set list!<CR>
|
|
|
nnoremap <silent> <leader><space> :call CycleKeymap()<CR>
|
|
|
|
|
|
" Toggle scrollbind for moving multiple splits in sync together
|
|
|
-nnoremap <silent> <leader>s :set scrollbind! scrollbind?<CR>
|
|
|
+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>
|
|
|
|
|
|
" Toggle NERDTree file browser
|
|
|
nnoremap <silent> <leader>d :NERDTreeToggle<CR>
|
|
|
@@ -239,24 +166,14 @@ nnoremap <silent> <leader>d :NERDTreeToggle<CR>
|
|
|
nnoremap <silent> <leader>, :call NERDComment("n", "toggle")<CR>
|
|
|
vnoremap <silent> <leader>, <ESC>:call NERDComment("x", "toggle")<CR>
|
|
|
|
|
|
-" Traverse undo tree with Gundo
|
|
|
-nnoremap <silent> <leader>u :GundoToggle<CR>
|
|
|
-
|
|
|
" Git commands with Fugitive
|
|
|
-nnoremap <silent> <leader>gs :Gstatus<CR>
|
|
|
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>
|
|
|
-nnoremap <silent> <leader>b :Gblame<CR>
|
|
|
-nnoremap <silent> <leader>gd :Gdiff<CR>
|
|
|
|
|
|
" Function definition jumping with CtrlP's Funky plugin
|
|
|
nnoremap <silent> <C-F> :CtrlPFunky<CR>
|
|
|
|
|
|
-" Code heirarchy with Tagbar
|
|
|
-nnoremap <silent> <leader>t :TagbarToggle<CR>
|
|
|
-
|
|
|
-
|
|
|
""""""""
|
|
|
"" Key Remaps - Movement and Windows
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
@@ -268,43 +185,33 @@ vmap H ^
|
|
|
vmap L $
|
|
|
|
|
|
" Smart way to move between windows
|
|
|
-nnoremap <C-j> <C-w>j
|
|
|
-nnoremap <C-k> <C-w>k
|
|
|
-nnoremap <C-h> <C-w>h
|
|
|
-nnoremap <C-l> <C-w>l
|
|
|
+"nnoremap <C-j> <C-w>j
|
|
|
+"nnoremap <C-k> <C-w>k
|
|
|
+"nnoremap <C-h> <C-w>h
|
|
|
+"nnoremap <C-l> <C-w>l
|
|
|
|
|
|
" mapping to make movements operate on 1 screen line in wrap mode
|
|
|
-onoremap <silent> <expr> j ScreenMovement("j")
|
|
|
-onoremap <silent> <expr> k ScreenMovement("k")
|
|
|
-onoremap <silent> <expr> 0 ScreenMovement("0")
|
|
|
-onoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
-onoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
-nnoremap <silent> <expr> j ScreenMovement("j")
|
|
|
-nnoremap <silent> <expr> k ScreenMovement("k")
|
|
|
-nnoremap <silent> <expr> 0 ScreenMovement("0")
|
|
|
-nnoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
-nnoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
-xnoremap <silent> <expr> j ScreenMovement("j")
|
|
|
-xnoremap <silent> <expr> k ScreenMovement("k")
|
|
|
-xnoremap <silent> <expr> 0 ScreenMovement("0")
|
|
|
-xnoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
-xnoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
+"onoremap <silent> <expr> j ScreenMovement("j")
|
|
|
+"onoremap <silent> <expr> k ScreenMovement("k")
|
|
|
+"onoremap <silent> <expr> 0 ScreenMovement("0")
|
|
|
+"onoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
+"onoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
+"nnoremap <silent> <expr> j ScreenMovement("j")
|
|
|
+"nnoremap <silent> <expr> k ScreenMovement("k")
|
|
|
+"nnoremap <silent> <expr> 0 ScreenMovement("0")
|
|
|
+"nnoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
+"nnoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
+"xnoremap <silent> <expr> j ScreenMovement("j")
|
|
|
+"xnoremap <silent> <expr> k ScreenMovement("k")
|
|
|
+"xnoremap <silent> <expr> 0 ScreenMovement("0")
|
|
|
+"xnoremap <silent> <expr> ^ ScreenMovement("^")
|
|
|
+"xnoremap <silent> <expr> $ ScreenMovement("$")
|
|
|
|
|
|
|
|
|
""""""""
|
|
|
"" Plugin options
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
|
|
-""""""""" NERDTree
|
|
|
-let g:NERDTreeQuitOnOpen = 1 " close sidebar after we go to selection
|
|
|
-
|
|
|
-
|
|
|
-""""""""" Gundo
|
|
|
-let g:gundo_width = 30
|
|
|
-let g:gundo_preview_height = 12
|
|
|
-let g:gundo_preview_bottom = 1
|
|
|
-
|
|
|
-
|
|
|
""""""""" Powerline
|
|
|
set rtp+=~/dotfiles/powerline/powerline/powerline/bindings/vim
|
|
|
set noshowmode " don't show e.g. --INSERT-- since we're using powerline
|
|
|
@@ -314,21 +221,9 @@ set noshowmode " don't show e.g. --INSERT-- since we're using powerline
|
|
|
let g:tagbar_autoclose = 1 " close sidebar after we go to selection
|
|
|
|
|
|
|
|
|
-""""""""" EasyGrep
|
|
|
-let g:EasyGrepCommand = 1 " don't use the built in vimgrep, which is slow
|
|
|
-" Caveat about using ack: cannot search unsaved changes in buffer, unlike vimgrep
|
|
|
-let g:EasyGrepJumpToMatch = 0
|
|
|
-let g:EasyGrepHighlightQfMatches = 1
|
|
|
-let g:EasyGrepRecursive = 1 " always start trying to recurse through directories
|
|
|
-
|
|
|
-
|
|
|
""""""""" Indent Guides
|
|
|
-let g:indent_guides_enable_on_vim_startup = 1
|
|
|
let g:indent_guides_auto_colors = 0
|
|
|
-
|
|
|
-
|
|
|
-""""""""" SuperTab
|
|
|
-let g:SuperTabDefaultCompletionType = 'context'
|
|
|
+let g:indent_guides_guide_size = 2
|
|
|
|
|
|
|
|
|
""""""""" Syntastic
|
|
|
@@ -336,14 +231,7 @@ let g:syntastic_auto_jump = 1
|
|
|
|
|
|
|
|
|
""""""""" CtrlP
|
|
|
-let g:ctrlp_working_path_mode = 'rw'
|
|
|
-let g:ctrlp_user_command = {
|
|
|
- \ 'types': {
|
|
|
- \ 1: ['.git', 'cd %s && git ls-files'],
|
|
|
- \ 2: ['.hg', 'hg --cwd %s locate -I .']
|
|
|
- \ },
|
|
|
- \ 'fallback': 'find %s -type f'
|
|
|
-\ }
|
|
|
+"let g:ctrlp_working_path_mode = 'rw' let's try out ra
|
|
|
let g:ctrlp_extensions = ['funky']
|
|
|
|
|
|
|
|
|
@@ -362,15 +250,6 @@ let g:vim_markdown_folding_disabled = 1
|
|
|
""""""""" Sparkup
|
|
|
let g:sparkupNextMapping = '<leader>n' " resolve conflict with vim-multiple-cursors
|
|
|
|
|
|
-
|
|
|
-""""""""" MatchIt
|
|
|
-" matchit.vim included in vim since 6.0. Load it if there isn't a newer version.
|
|
|
-" (from sensible.vim)
|
|
|
-if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
|
|
|
- runtime! macros/matchit.vim
|
|
|
-endif
|
|
|
-
|
|
|
-
|
|
|
""""""""
|
|
|
"" Functions
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|