@@ -0,0 +1,399 @@
" """"""""""""""""""""""""""""""""""""
" Lorenzo Sinisi Vimrc configuration
" """"""""""""""""""""""""""""""""""""
set nocompatible
syntax on
set nowrap
set ignorecase
set smartcase
set encoding = utf8
set mouse = nicr
set directory ^= " $HOME/.vim/tmp/"
set colorcolumn = 80
" """ START Vundle Configuration
set nobackup
" 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 ()
" Delete a word with backspace
imap <C-BS> <C-W>
" let Vundle manage Vundle, required
Plugin ' gmarik/Vundle.vim'
" Utility
Plugin ' scrooloose/nerdtree'
Plugin ' ervandew/supertab'
Plugin ' wincent/command-t'
Plugin ' BufOnly.vim'
Plugin ' wesQ3/vim-windowswap'
Plugin ' SirVer/ultisnips'
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 ' tpope/vim-dispatch'
Plugin ' Shougo/neocomplete.vim'
Plugin ' ntpeters/vim-better-whitespace'
Plugin ' airblade/vim-gitgutter'
Plugin ' valloric/youcompleteme'
" 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'
highlight ExtraWhitespace ctermbg= red
" 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'
" Erlang Support
Plugin ' vim-erlang/vim-erlang-tags'
Plugin ' vim-erlang/vim-erlang-runtime'
Plugin ' vim-erlang/vim-erlang-omnicomplete'
Plugin ' vim-erlang/vim-erlang-compiler'
" Elixir Support
Plugin ' elixir-lang/vim-elixir'
Plugin ' avdgaag/vim-phoenix'
Plugin ' mmorearty/elixir-ctags'
Plugin ' mattreduce/vim-mix'
Plugin ' BjRo/vim-extest'
Plugin ' frost/vim-eh-docs'
Plugin ' slashmili/alchemist.vim'
Plugin ' jadercorrea/elixir_generator.vim'
" 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'
Plugin ' mileszs/ack.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
set guifont =
if (has (" termguicolors" ))
set termguicolors
endif
let base16colorspace= 256 " Access colors present in 256 colorspace
colorscheme spacegray
" colorscheme spacemacs-theme
colorscheme spacegray
let g: spacegray_underline_search = 1
let g: spacegray_italicize_comments = 1
highlight OverLength ctermbg= red ctermfg= white guibg= #592929
match OverLength /\%81v.\+/
" 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 : 46 q !
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.
set splitright
" Vim-Test Configuration
let test#strategy = " vimux"
nnoremap <silent> <leader><space> :Files<CR>
nnoremap <silent> <leader> a :Buffers<CR>
nnoremap <silent> <leader> A :Windows<CR>
nnoremap <silent> <leader> ; :BLines<CR>
nnoremap <silent> <leader> o :BTags<CR>
nnoremap <silent> <leader> O :Tags<CR>
nnoremap <silent> <leader> ? :History<CR>
nnoremap <silent> <leader> / :Ag<CR>
nnoremap <silent> <leader> ga :BCommits<CR>
nnoremap <silent> <leader> ft :Filetypes<CR>
imap <C-x><C-f> <plug> (fzf-complete-file-ag)
let g: ackprg = ' ag --vimgrep'
let g: ag_lhandler= " botright lopen"
imap <C-x><C-l> <plug> (fzf-complete-line)
" 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
" 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> ")
" <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 +4<CR>
nnoremap <Down> :resize -4<CR>
nnoremap <Left> :vertical resize +4<CR>
nnoremap <Right> :vertical resize -4<CR>
endif
highlight ExtraWhitespace ctermbg= red guibg= red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches ()
" 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>