2015-07-12 17:50:37 +02:00
|
|
|
" VIM Configuration - Geoffrey FROGEYE
|
|
|
|
"
|
|
|
|
|
|
|
|
set nocompatible
|
|
|
|
filetype off
|
|
|
|
|
|
|
|
""" PLUGINS MANAGEMENT """
|
|
|
|
" Voir :h vundle
|
|
|
|
|
|
|
|
set rtp+=~/.vim/bundle/Vundle.vim
|
|
|
|
call vundle#begin()
|
|
|
|
Plugin 'gmarik/Vundle.vim'
|
|
|
|
|
|
|
|
Plugin 'L9'
|
|
|
|
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
|
|
|
|
Plugin 'altercation/vim-colors-solarized'
|
|
|
|
Bundle 'Shougo/neocomplete'
|
|
|
|
Bundle 'Shougo/neosnippet'
|
|
|
|
Bundle 'Shougo/neosnippet-snippets'
|
|
|
|
Plugin 'tpope/vim-surround'
|
|
|
|
Plugin 'tpope/vim-fugitive'
|
|
|
|
Plugin 'tpope/vim-repeat'
|
|
|
|
Plugin 'scrooloose/syntastic'
|
2015-09-24 18:08:29 +02:00
|
|
|
"Plugin 'terryma/vim-multiple-cursors'
|
2016-02-20 23:53:40 +01:00
|
|
|
Plugin 'vim-airline/vim-airline'
|
|
|
|
Plugin 'vim-airline/vim-airline-themes'
|
2015-07-12 17:50:37 +02:00
|
|
|
Plugin 'airblade/vim-gitgutter'
|
|
|
|
Plugin 'kien/ctrlp.vim'
|
2016-02-20 23:53:40 +01:00
|
|
|
Plugin 'mbbill/undotree'
|
|
|
|
Plugin 'scrooloose/nerdtree'
|
|
|
|
Plugin 'Xuyuanp/nerdtree-git-plugin'
|
|
|
|
Plugin 'xolox/vim-misc'
|
|
|
|
Plugin 'xolox/vim-easytags'
|
|
|
|
Plugin 'majutsushi/tagbar'
|
2016-03-16 14:23:03 +01:00
|
|
|
"Plugin 'gilligan/vim-lldb'
|
|
|
|
Plugin 'welle/targets.vim'
|
2015-07-12 17:50:37 +02:00
|
|
|
|
|
|
|
call vundle#end() " required
|
|
|
|
filetype plugin indent on " required
|
|
|
|
|
|
|
|
""" CTRLP """
|
|
|
|
|
|
|
|
let g:ctrlp_custom_ignore = {
|
|
|
|
\ 'dir': '\v([\/]\.(git|hg|svn)|node_modules|bower_components|__pycache__|vendor)$',
|
|
|
|
\ 'file': '\v\.(exe|so|dll)$',
|
|
|
|
\ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
|
|
|
|
\ }
|
|
|
|
|
|
|
|
""" NEOCOMPLETE """
|
|
|
|
|
|
|
|
"Note: This option must set it in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)!
|
|
|
|
" Disable AutoComplPop.
|
|
|
|
let g:acp_enableAtStartup = 0
|
|
|
|
" Use neocomplete.
|
|
|
|
let g:neocomplete#enable_at_startup = 1
|
|
|
|
" Use smartcase.
|
|
|
|
let g:neocomplete#enable_smart_case = 1
|
|
|
|
" Set minimum syntax keyword length.
|
|
|
|
let g:neocomplete#sources#syntax#min_keyword_length = 3
|
|
|
|
let g:neocomplete#lock_buffer_name_pattern = '\*ku\*'
|
|
|
|
|
|
|
|
" Define dictionary.
|
|
|
|
let g:neocomplete#sources#dictionary#dictionaries = {
|
|
|
|
\ 'default' : '',
|
|
|
|
\ 'vimshell' : $HOME.'/.vimshell_hist',
|
|
|
|
\ 'scheme' : $HOME.'/.gosh_completions'
|
|
|
|
\ }
|
|
|
|
|
|
|
|
" Define keyword.
|
|
|
|
if !exists('g:neocomplete#keyword_patterns')
|
|
|
|
let g:neocomplete#keyword_patterns = {}
|
|
|
|
endif
|
|
|
|
let g:neocomplete#keyword_patterns['default'] = '\h\w*'
|
|
|
|
|
|
|
|
" Plugin key-mappings.
|
|
|
|
inoremap <expr><C-g> neocomplete#undo_completion()
|
|
|
|
inoremap <expr><C-l> neocomplete#complete_common_string()
|
|
|
|
|
|
|
|
" Recommended key-mappings.
|
|
|
|
" <CR>: close popup and save indent.
|
|
|
|
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
|
|
|
|
function! s:my_cr_function()
|
|
|
|
return neocomplete#close_popup() . "\<CR>"
|
|
|
|
" For no inserting <CR> key.
|
|
|
|
"return pumvisible() ? neocomplete#close_popup() : "\<CR>"
|
|
|
|
endfunction
|
|
|
|
" <TAB>: completion.
|
|
|
|
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
|
|
|
|
" <C-h>, <BS>: close popup and delete backword char.
|
|
|
|
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
|
|
|
|
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
|
|
|
|
inoremap <expr><C-y> neocomplete#close_popup()
|
|
|
|
inoremap <expr><C-e> neocomplete#cancel_popup()
|
|
|
|
" Close popup by <Space>.
|
|
|
|
"inoremap <expr><Space> pumvisible() ? neocomplete#close_popup() : "\<Space>"
|
|
|
|
|
|
|
|
" For cursor moving in insert mode(Not recommended)
|
|
|
|
"inoremap <expr><Left> neocomplete#close_popup() . "\<Left>"
|
|
|
|
"inoremap <expr><Right> neocomplete#close_popup() . "\<Right>"
|
|
|
|
"inoremap <expr><Up> neocomplete#close_popup() . "\<Up>"
|
|
|
|
"inoremap <expr><Down> neocomplete#close_popup() . "\<Down>"
|
|
|
|
" Or set this.
|
|
|
|
"let g:neocomplete#enable_cursor_hold_i = 1
|
|
|
|
" Or set this.
|
|
|
|
"let g:neocomplete#enable_insert_char_pre = 1
|
|
|
|
|
|
|
|
" AutoComplPop like behavior.
|
|
|
|
"let g:neocomplete#enable_auto_select = 1
|
|
|
|
|
|
|
|
" Shell like behavior(not recommended).
|
|
|
|
"set completeopt+=longest
|
|
|
|
"let g:neocomplete#enable_auto_select = 1
|
|
|
|
"let g:neocomplete#disable_auto_complete = 1
|
|
|
|
"inoremap <expr><TAB> pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"
|
|
|
|
|
|
|
|
" Enable omni completion.
|
|
|
|
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
|
|
|
|
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
|
|
|
|
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
|
|
|
|
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
|
|
|
|
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
|
|
|
|
|
|
|
|
" Enable heavy omni completion.
|
|
|
|
if !exists('g:neocomplete#sources#omni#input_patterns')
|
|
|
|
let g:neocomplete#sources#omni#input_patterns = {}
|
|
|
|
endif
|
|
|
|
"let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
|
|
|
|
"let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
|
|
|
|
"let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'
|
|
|
|
|
|
|
|
" For perlomni.vim setting.
|
|
|
|
" https://github.com/c9s/perlomni.vim
|
|
|
|
let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'
|
|
|
|
|
|
|
|
""" SYNTASTIC """
|
|
|
|
|
|
|
|
set statusline+=%#warningmsg#
|
|
|
|
set statusline+=%{syntasticstatuslineflag()}
|
|
|
|
set statusline+=%*
|
|
|
|
|
|
|
|
let g:syntastic_always_populate_loc_list = 0
|
|
|
|
let g:syntastic_auto_loc_list = 0
|
|
|
|
let g:syntastic_check_on_open = 1
|
|
|
|
let g:syntastic_check_on_wq = 0
|
|
|
|
|
|
|
|
""" VIM-MULTIPLE-CURSORS """
|
|
|
|
|
|
|
|
let g:multi_cursor_use_default_mapping=0
|
|
|
|
" Default mapping
|
|
|
|
let g:multi_cursor_next_key='<C-n>'
|
|
|
|
let g:multi_cursor_prev_key='<C-p>'
|
|
|
|
let g:multi_cursor_skip_key='<C-x>'
|
|
|
|
|
|
|
|
let g:multi_cursor_quit_key='<Esc>'
|
|
|
|
" Map start key separately from next key
|
|
|
|
let g:multi_cursor_start_key='<F6>'
|
|
|
|
let g:multi_cursor_start_key='<C-n>'
|
|
|
|
let g:multi_cursor_start_word_key='g<C-n>'
|
|
|
|
|
|
|
|
""" VIM-AIRLINE """
|
|
|
|
|
|
|
|
set noshowmode
|
|
|
|
set laststatus=2
|
|
|
|
let g:airline_powerline_fonts = 1
|
|
|
|
let g:airline#extensions#syntastic#enabled = 1
|
|
|
|
let g:airline#extensions#tabline#enabled = 1
|
|
|
|
|
|
|
|
let g:airline_section_a = airline#section#create(['mode'])
|
|
|
|
let g:airline_section_b = airline#section#create(['branch', 'hunks'])
|
|
|
|
let g:airline_section_z = airline#section#create(['%B', '@', '%l', ':', '%c'])
|
|
|
|
|
2016-02-20 23:53:40 +01:00
|
|
|
""" NERDTREE-GIT-PLUGIN """
|
|
|
|
|
|
|
|
let g:NERDTreeIndicatorMapCustom = {
|
|
|
|
\ "Modified" : "✹",
|
|
|
|
\ "Staged" : "✚",
|
|
|
|
\ "Untracked" : "✭",
|
|
|
|
\ "Renamed" : "➜",
|
|
|
|
\ "Unmerged" : "═",
|
|
|
|
\ "Deleted" : "✖",
|
|
|
|
\ "Dirty" : "✗",
|
|
|
|
\ "Clean" : "✔︎",
|
|
|
|
\ "Unknown" : "?"
|
|
|
|
\ }
|
|
|
|
|
|
|
|
|
2015-07-12 17:50:37 +02:00
|
|
|
""" VIM SETTINGS """
|
|
|
|
|
|
|
|
set encoding=utf-8
|
|
|
|
set title
|
|
|
|
|
|
|
|
set number
|
|
|
|
set ruler
|
|
|
|
set wrap
|
|
|
|
|
|
|
|
set scrolloff=5
|
|
|
|
|
|
|
|
set ignorecase
|
|
|
|
set smartcase
|
|
|
|
|
|
|
|
set incsearch
|
|
|
|
|
|
|
|
set hlsearch
|
|
|
|
|
2015-11-20 14:03:59 +01:00
|
|
|
set tabstop=4
|
|
|
|
set shiftwidth=4
|
|
|
|
set expandtab
|
|
|
|
|
2015-07-12 17:50:37 +02:00
|
|
|
set visualbell
|
|
|
|
set noerrorbells
|
|
|
|
|
|
|
|
set backspace=indent,eol,start
|
|
|
|
|
|
|
|
set hidden
|
2016-02-20 23:53:40 +01:00
|
|
|
set updatetime=250
|
2015-07-12 17:50:37 +02:00
|
|
|
|
|
|
|
syntax enable
|
|
|
|
|
|
|
|
set background=dark
|
|
|
|
colorscheme solarized
|
2016-02-20 23:53:40 +01:00
|
|
|
|
2016-03-16 14:23:03 +01:00
|
|
|
" From http://stackoverflow.com/a/5004785/2766106
|
|
|
|
set list
|
|
|
|
set listchars=tab:╾╌,trail:·,extends:↦,precedes:↤,nbsp:_
|
2015-07-12 17:50:37 +02:00
|
|
|
|
|
|
|
filetype on
|
|
|
|
filetype plugin on
|
|
|
|
filetype indent on
|
|
|
|
|
2016-01-12 14:05:27 +01:00
|
|
|
" Put plugins and dictionaries in this dir (also on Windows)
|
|
|
|
let vimDir = '$HOME/.vim'
|
|
|
|
let &runtimepath.=','.vimDir
|
|
|
|
|
|
|
|
" Keep undo history across sessions by storing it in a file
|
|
|
|
if has('persistent_undo')
|
|
|
|
let myUndoDir = expand(vimDir . '/undodir')
|
|
|
|
" Create dirs
|
|
|
|
call system('mkdir ' . vimDir)
|
|
|
|
call system('mkdir ' . myUndoDir)
|
|
|
|
let &undodir = myUndoDir
|
|
|
|
set undofile
|
|
|
|
endif
|
|
|
|
|
2015-07-12 17:50:37 +02:00
|
|
|
map <up> <nop>
|
|
|
|
map <down> <nop>
|
|
|
|
map <left> <nop>
|
|
|
|
map <right> <nop>
|
|
|
|
imap <up> <nop>
|
|
|
|
imap <down> <nop>
|
|
|
|
imap <left> <nop>
|
|
|
|
imap <right> <nop>
|
|
|
|
map ;; <Esc>
|
|
|
|
imap ;; <Esc>
|
|
|
|
map <Enter> o<Esc>
|
|
|
|
|