Created
November 25, 2019 00:02
-
-
Save stagfoo/330f033e8c146bc7bc05ae5b103da7d4 to your computer and use it in GitHub Desktop.
IDE.vim
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""""""""""""""""""""""""""""""""""""" | |
" Allan MacGregor Vimrc configuration | |
""""""""""""""""""""""""""""""""""""" | |
"Mouse controller | |
:set mouse=a | |
set nocompatible | |
syntax on | |
set nowrap | |
set encoding=utf8 | |
"""" START Vundle Configuration | |
" Disable file type for vundle | |
filetype off " required | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" let Vundle manage Vundle, required | |
Plugin 'gmarik/Vundle.vim' | |
" Utility | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'majutsushi/tagbar' | |
Plugin 'ervandew/supertab' | |
Plugin 'BufOnly.vim' | |
Plugin 'wesQ3/vim-windowswap' | |
Plugin 'junegunn/fzf.vim' | |
Plugin 'junegunn/fzf' | |
Plugin 'godlygeek/tabular' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'benmills/vimux' | |
Plugin 'jeetsukumaran/vim-buffergator' | |
Plugin 'gilsondev/searchtasks.vim' | |
Plugin 'Shougo/neocomplete.vim' | |
Plugin 'tpope/vim-dispatch' | |
" Generic Programming Support | |
Plugin 'honza/vim-snippets' | |
Plugin 'Townk/vim-autoclose' | |
Plugin 'tomtom/tcomment_vim' | |
Plugin 'tobyS/vmustache' | |
Plugin 'janko-m/vim-test' | |
Plugin 'maksimr/vim-jsbeautify' | |
Plugin 'vim-syntastic/syntastic' | |
Plugin 'neomake/neomake' | |
" Markdown / Writting | |
Plugin 'reedes/vim-pencil' | |
Plugin 'tpope/vim-markdown' | |
Plugin 'jtratner/vim-flavored-markdown' | |
Plugin 'LanguageTool' | |
" Git Support | |
Plugin 'kablamo/vim-git-log' | |
Plugin 'gregsexton/gitv' | |
Plugin 'tpope/vim-fugitive' | |
"Plugin 'jaxbot/github-issues.vim' | |
" PHP Support | |
Plugin 'phpvim/phpcd.vim' | |
Plugin 'tobyS/pdv' | |
" Elm Support | |
Plugin 'lambdatoast/elm.vim' | |
"TS Support | |
Plugin 'leafgarland/typescript-vim' | |
Plugin 'Quramy/tsuquyomi' | |
" Theme / Interface | |
Plugin 'AnsiEsc.vim' | |
Plugin 'ryanoasis/vim-devicons' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'vim-airline/vim-airline-themes' | |
Plugin 'sjl/badwolf' | |
Plugin 'tomasr/molokai' | |
Plugin 'morhetz/gruvbox' | |
Plugin 'zenorocha/dracula-theme', {'rtp': 'vim/'} | |
Plugin 'junegunn/limelight.vim' | |
Plugin 'mkarmona/colorsbox' | |
Plugin 'romainl/Apprentice' | |
Plugin 'Lokaltog/vim-distinguished' | |
Plugin 'chriskempson/base16-vim' | |
Plugin 'w0ng/vim-hybrid' | |
Plugin 'AlessandroYorba/Sierra' | |
Plugin 'daylerees/colour-schemes' | |
Plugin 'effkay/argonaut.vim' | |
Plugin 'ajh17/Spacegray.vim' | |
Plugin 'atelierbram/Base2Tone-vim' | |
Plugin 'colepeters/spacemacs-theme.vim' | |
" OSX stupid backspace fix | |
set backspace=indent,eol,start | |
call vundle#end() " required | |
filetype plugin indent on " required | |
"""" END Vundle Configuration | |
""""""""""""""""""""""""""""""""""""" | |
" Configuration Section | |
""""""""""""""""""""""""""""""""""""" | |
" Show linenumbers | |
set number | |
set ruler | |
" Set Proper Tabs | |
set tabstop=4 | |
set shiftwidth=4 | |
set smarttab | |
set expandtab | |
" Always display the status line | |
set laststatus=2 | |
" Enable Elite mode, No ARRRROWWS!!!! | |
let g:elite_mode=1 | |
" Enable highlighting of the current line | |
set cursorline | |
" Theme and Styling | |
set t_Co=256 | |
set background=dark | |
if (has("termguicolors")) | |
set termguicolors | |
endif | |
let base16colorspace=256 " Access colors present in 256 colorspace | |
colorscheme spacegray | |
" colorscheme spacemacs-theme | |
let g:spacegray_underline_search = 1 | |
let g:spacegray_italicize_comments = 1 | |
" Vim-Airline Configuration | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline_powerline_fonts = 1 | |
let g:airline_theme='hybrid' | |
let g:hybrid_custom_term_colors = 1 | |
let g:hybrid_reduced_contrast = 1 | |
" Syntastic Configuration | |
set statusline+=%#warningmsg# | |
set statusline+=%{SyntasticStatuslineFlag()} | |
set statusline+=%* | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_auto_loc_list = 1 | |
let g:syntastic_check_on_open = 1 | |
" let g:syntastic_check_on_wq = 0 | |
" let g:syntastic_enable_elixir_checker = 1 | |
" let g:syntastic_elixir_checkers = ["elixir"] | |
" Neomake settings | |
autocmd! BufWritePost * Neomake | |
let g:neomake_elixir_enabled_makers = ['mix', 'credo', 'dogma'] | |
" Vim-PDV Configuration | |
let g:pdv_template_dir = $HOME ."/.vim/bundle/pdv/templates_snip" | |
" Markdown Syntax Support | |
augroup markdown | |
au! | |
au BufNewFile,BufRead *.md,*.markdown setlocal filetype=ghmarkdown | |
augroup END | |
" Github Issues Configuration | |
let g:github_access_token = "e6fb845bd306a3ca7f086cef82732d1d5d9ac8e0" | |
" Vim-Alchemist Configuration | |
let g:alchemist#elixir_erlang_src = "/Users/amacgregor/Projects/Github/alchemist-source" | |
let g:alchemist_tag_disable = 1 | |
" Vim-Supertab Configuration | |
let g:SuperTabDefaultCompletionType = "<C-X><C-O>" | |
" Settings for Writting | |
let g:pencil#wrapModeDefault = 'soft' " default is 'hard' | |
let g:languagetool_jar = '/opt/languagetool/languagetool-commandline.jar' | |
" Vim-pencil Configuration | |
augroup pencil | |
autocmd! | |
autocmd FileType markdown,mkd call pencil#init() | |
autocmd FileType text call pencil#init() | |
augroup END | |
" Vim-UtilSnips Configuration | |
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe. | |
let g:UltiSnipsExpandTrigger="<tab>" | |
let g:UltiSnipsJumpForwardTrigger="<c-b>" | |
let g:UltiSnipsJumpBackwardTrigger="<c-z>" | |
let g:UltiSnipsEditSplit="vertical" " If you want :UltiSnipsEdit to split your window. | |
" Vim-Test Configuration | |
let test#strategy = "vimux" | |
" Neocomplete Settings | |
let g:acp_enableAtStartup = 0 | |
let g:neocomplete#enable_at_startup = 1 | |
let g:neocomplete#enable_smart_case = 1 | |
let g:neocomplete#sources#syntax#min_keyword_length = 3 | |
" 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*' | |
function! s:my_cr_function() | |
return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>" | |
" For no inserting <CR> key. | |
"return pumvisible() ? "\<C-y>" : "\<CR>" | |
endfunction | |
" Close popup by <Space>. | |
"inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>" | |
" AutoComplPop like behavior. | |
"let g:neocomplete#enable_auto_select = 1 | |
" 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*::' | |
" Elixir Tagbar Configuration | |
let g:tagbar_type_elixir = { | |
\ 'ctagstype' : 'elixir', | |
\ 'kinds' : [ | |
\ 'f:functions', | |
\ 'functions:functions', | |
\ 'c:callbacks', | |
\ 'd:delegates', | |
\ 'e:exceptions', | |
\ 'i:implementations', | |
\ 'a:macros', | |
\ 'o:operators', | |
\ 'm:modules', | |
\ 'p:protocols', | |
\ 'r:records', | |
\ 't:tests' | |
\ ] | |
\ } | |
" Fzf Configuration | |
" This is the default extra key bindings | |
let g:fzf_action = { | |
\ 'ctrl-t': 'tab split', | |
\ 'ctrl-x': 'split', | |
\ 'ctrl-v': 'vsplit' } | |
" Default fzf layout | |
" - down / up / left / right | |
let g:fzf_layout = { 'down': '~40%' } | |
" In Neovim, you can set up fzf window using a Vim command | |
let g:fzf_layout = { 'window': 'enew' } | |
let g:fzf_layout = { 'window': '-tabnew' } | |
" Customize fzf colors to match your color scheme | |
let g:fzf_colors = | |
\ { 'fg': ['fg', 'Normal'], | |
\ 'bg': ['bg', 'Normal'], | |
\ 'hl': ['fg', 'Comment'], | |
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], | |
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], | |
\ 'hl+': ['fg', 'Statement'], | |
\ 'info': ['fg', 'PreProc'], | |
\ 'prompt': ['fg', 'Conditional'], | |
\ 'pointer': ['fg', 'Exception'], | |
\ 'marker': ['fg', 'Keyword'], | |
\ 'spinner': ['fg', 'Label'], | |
\ 'header': ['fg', 'Comment'] } | |
" Enable per-command history. | |
" CTRL-N and CTRL-P will be automatically bound to next-history and | |
" previous-history instead of down and up. If you don't like the change, | |
" explicitly bind the keys to down and up in your $FZF_DEFAULT_OPTS. | |
let g:fzf_history_dir = '~/.local/share/fzf-history' | |
""""""""""""""""""""""""""""""""""""" | |
" Mappings configurationn | |
""""""""""""""""""""""""""""""""""""" | |
map <C-n> :NERDTreeToggle<CR> | |
map <C-m> :TagbarToggle<CR> | |
" Omnicomplete Better Nav | |
inoremap <expr> <c-j> ("\<C-n>") | |
inoremap <expr> <c-k> ("\<C-p>") | |
" Neocomplete Plugin mappins | |
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> | |
" <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>" | |
" Mapping selecting Mappings | |
nmap <leader><tab> <plug>(fzf-maps-n) | |
xmap <leader><tab> <plug>(fzf-maps-x) | |
omap <leader><tab> <plug>(fzf-maps-o) | |
" Shortcuts | |
nnoremap <Leader>o :Files<CR> | |
nnoremap <Leader>O :CtrlP<CR> | |
nnoremap <Leader>w :w<CR> | |
" Insert mode completion | |
imap <c-x><c-k> <plug>(fzf-complete-word) | |
imap <c-x><c-f> <plug>(fzf-complete-path) | |
imap <c-x><c-j> <plug>(fzf-complete-file-ag) | |
imap <c-x><c-l> <plug>(fzf-complete-line) | |
" Vim-Test Mappings | |
nmap <silent> <leader>t :TestNearest<CR> | |
nmap <silent> <leader>T :TestFile<CR> | |
nmap <silent> <leader>a :TestSuite<CR> | |
nmap <silent> <leader>l :TestLast<CR> | |
nmap <silent> <leader>g :TestVisit<CR> | |
" Vim-PDV Mappings | |
autocmd FileType php inoremap <C-p> <ESC>:call pdv#DocumentWithSnip()<CR>i | |
autocmd FileType php nnoremap <C-p> :call pdv#DocumentWithSnip()<CR> | |
autocmd FileType php setlocal omnifunc=phpcd#CompletePHP | |
" Disable arrow movement, resize splits instead. | |
"if get(g:, 'elite_mode') | |
" nnoremap <Up> :resize +2<CR> | |
" nnoremap <Down> :resize -2<CR> | |
" nnoremap <Left> :vertical resize +2<CR> | |
" nnoremap <Right> :vertical resize -2<CR> | |
"endif | |
map <silent> <LocalLeader>ws :highlight clear ExtraWhitespace<CR> | |
" Advanced customization using autoload functions | |
inoremap <expr> <c-x><c-k> fzf#vim#complete#word({'left': '15%'}) | |
" Vim-Alchemist Mappings | |
autocmd FileType elixir nnoremap <buffer> <leader>h :call alchemist#exdoc()<CR> | |
autocmd FileType elixir nnoremap <buffer> <leader>d :call alchemist#exdef()<CR> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment