" ===== hasufell's vimrc )))) " plugin stuff filetype plugin on filetype indent on " Section pathogen " let g:pathogen_disabled = [] " call add(g:pathogen_disabled, 'syntastic') " call pathogen#infect() " vim-plug settings (Plugin declaration) call plug#begin('~/.vim/plugged') Plug 'mileszs/ack.vim' Plug 'romainl/Apprentice' Plug 'chriskempson/base16-vim' Plug 'fneu/breezy' Plug 'vim-scripts/cmdalias.vim' Plug 'Raimondi/delimitMate' Plug 'romainl/Disciple' Plug 'vim-scripts/genindent.vim' Plug 'sjl/gundo.vim' Plug 'idris-hackers/idris-vim' Plug 'wimstefan/Lightning' Plug 'vim-scripts/LustyJuggler' Plug 'yegappan/mru' Plug 'scrooloose/nerdcommenter' Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'NLKNguyen/papercolor-theme' Plug 'powerline/powerline', { \ 'branch': 'develop', \ 'do': 'python setup.py install --user', \ 'rtp': 'powerline/bindings/vim', \ } Plug 'vim-scripts/promela.vim' Plug 'AndrewRadev/simple_bookmarks.vim' Plug 'Keithbsmiley/swift.vim' Plug 'majutsushi/tagbar' Plug 'ternjs/tern_for_vim' Plug 'flazz/vim-colorschemes' Plug 'reedes/vim-colors-pencil' Plug 'altercation/vim-colors-solarized' Plug 'xolox/vim-easytags' Plug 'tpope/vim-fugitive' Plug 'whatyouhide/vim-gotham' Plug 'noahfrederick/vim-hemisu' Plug 'nathanaelkane/vim-indent-guides' Plug 'xolox/vim-misc' Plug 'Shougo/vimproc.vim', {'do' : 'make'} Plug 'tpope/vim-rhubarb' " local_vimrc Plug 'LucHermitte/lh-vim-lib' Plug 'LucHermitte/local_vimrc' " LSP " Plug 'autozimu/LanguageClient-neovim', { " \ 'branch': 'next', " \ 'do': 'bash install.sh', " \ 'for': 'haskell', " \ } " (Optional) Multi-entry selection UI. " Plug 'junegunn/fzf', { 'for': 'haskell' } " autocomplet " Plug 'Shougo/deoplete.nvim', { 'for': 'haskell' } " Plug 'roxma/nvim-yarp', { 'for': 'haskell' } " Plug 'roxma/vim-hug-neovim-rpc', { 'for': 'haskell' } " linting/compilation Plug 'w0rp/ale' " completion Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang', \ 'for': ['haskell', 'c', 'python', 'sh', 'go', 'clojure'], \ } " haskell Plug 'eagletmt/ghcmod-vim', { 'for': 'haskell' } Plug 'eagletmt/neco-ghc', { 'for': 'haskell' } Plug 'lukerandall/haskellmode-vim', { 'for': 'haskell' } Plug 'raichoo/haskell-vim', { 'for': 'haskell' } Plug 'ucsd-progsys/liquid-types.vim', { 'for': 'haskell' } Plug 'bitc/lushtags', { \ 'do': 'bash -c \"cabal clean && cabal sandbox delete && cabal sandbox init && cabal install && cp .cabal-sandbox/bin/lushtags ~/.cabal/bin/lushtags\"', \ 'for': 'haskell', \ } " Plug 'timmytofu/vim-cabal-context', { 'for': 'haskell' } Plug 'itchyny/vim-haskell-indent', { 'for': 'haskell' } Plug 'dan-t/vim-hsimport', { 'for': 'haskell' } " clojure " Plug '~/.vim/unmanaged-vim-plug/paredit', { 'for': 'clojure' } " Plug '~/.vim/unmanaged-vim-plug/tslime', { 'for': 'clojure' } Plug 'tpope/vim-salve', { 'for': 'clojure' } Plug 'tpope/vim-projectionist', { 'for': 'clojure' } Plug 'tpope/vim-dispatch', { 'for': 'clojure' } Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " go Plug 'garyburd/go-explorer', { 'for': 'go' } Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries', 'for': 'go' } " rust Plug 'rhysd/rust-doc.vim', { 'for': 'rust' } Plug 'rust-lang/rust.vim', { 'for': 'rust' } " javascript Plug 'moll/vim-node', { 'for': 'javascript' } Plug 'pangloss/vim-javascript', { 'for': 'javascript' } " python Plug 'icedwater/vimpython', { 'for': 'python' } " scala Plug 'derekwyatt/vim-scala', { 'for': 'scala' } " unmanaged Plug '~/.vim/unmanaged-vim-plug/bufonly' Plug '~/.vim/unmanaged-vim-plug/colorschemedegrade' Plug '~/.vim/unmanaged-vim-plug/fontzoom' Plug '~/.vim/unmanaged-vim-plug/fuzzyfinder' Plug '~/.vim/unmanaged-vim-plug/L9' Plug '~/.vim/unmanaged-vim-plug/log' Plug '~/.vim/unmanaged-vim-plug/ScrollColor' Plug '~/.vim/unmanaged-vim-plug/txtfmt' " Initialize plugin system call plug#end() " ===== further plugin initialization ===== so ~/.vim/plugged/cmdalias.vim/plugin/cmdalias.vim "powerline python from powerline.vim import setup as powerline_setup python powerline_setup() python del powerline_setup set laststatus=2 " lj let g:LustyJugglerSuppressRubyWarning = 1 " global settings set foldmethod=syntax "fold based on indent set foldnestmax=10 "deepest fold is 10 levels set nofoldenable "dont fold by default set foldlevel=1 "this is just what i useset directory=~/.vimtmp set mouse=a set autoread set number set encoding=utf8 set guifont=Monospace\ 14 set clipboard=unnamedplus set textwidth=0 set tabstop=4 set shiftwidth=4 set directory=~/.vimtmp set modeline set modelines=1 let g:nickID = "hasufell" " haskellmode, needs to load early let g:haddock_browser='/usr/bin/firefox' let g:haddock_browser_callformat='%s file://%s >/dev/null 2>&1 &' " ==== conque ==== " command aliases call CmdAlias('t','tabnew') " call CmdAlias('cmd','ConqueTermSplit') " call CmdAlias('bash','ConqueTermSplit bash') call CmdAlias('openall','tab sball') call CmdAlias('stripw','call StripTrailingWhitespaces()') call CmdAlias('hotkeys', 'tabnew ~/.vim/hotkeys') call CmdAlias('TC', 'call ToggleComment()') call CmdAlias('TF', 'call ToggleFoldText()') call CmdAlias('ctags', '!/usr/bin/ctags -R --langmap=c:.c.h --c++-kinds=+p --c-kinds=+p+x --fields=+i+a+S+t+l+m+n --extra=+q .') " cabbrev git Git " Disable annoying auto line break fu! DisableBr() set wrap set linebreak set nolist " list disables linebreak set textwidth=0 set wrapmargin=0 set fo-=t endfu " Disable line breaks for all file types au BufNewFile,BufRead *.* call DisableBr() " ==========copy/paste=========== function! Paste(mode) if a:mode == "v" normal gv normal "_d normal "+gP normal l elseif a:mode == "i" set virtualedit=all normal `^"+gP let &virtualedit = "" endif endfunction " ======select all======= function! Select() set virtualedit=all normal `^ggVG let &virtualedit = "" endfunction " ======================= " don't yank to buffer on deletion " vnoremap d "_d " nnoremap d "_d vnoremap x "_x nnoremap x "_x " Syntax syntax enable " ==== delimitMate ==== let g:delimitMate_matchpairs = "(:),[:],{:}" let g:delimitMate_expand_cr = 1 let g:delimitMate_expand_space = 1 let g:delimitMate_autoclose = 1 " pane navigation " Use ctrl-[hjkl] to select the active split! let g:C_Ctrl_j = 'off' let g:BASH_Ctrl_j = 'off' " ==========colors=========== "set t_Co=256 "let g:solarized_termcolors=256 if has('gui_running') set background=dark colorscheme solarized else set background=dark colorscheme solarized " colorscheme dante endif " =========================== " Solarized stuff " let g:solarized_termtrans=0 " let g:solarized_degrade=0 " let g:solarized_bold=1 " let g:solarized_underline=1 " let g:solarized_italic=1 " let g:solarized_termcolors=16 " let g:solarized_contrast="normal" let g:solarized_visibility="high" " let g:solarized_diffmode="normal" " let g:solarized_hitrail=0 let g:solarized_menu=1 try lang en_US catch endtry " ====== traling whitespace ===== fun! ShowTrailingWhitespace(pattern) if &ft == 'conque_term' call clearmatches() return endif if &ft == 'diff' call clearmatches() return endif let str=a:pattern if str == '1' match ExtraWhitespace /\s\+$/ elseif str == '2' call clearmatches() " match ExtraWhitespace /\s\+\%#\@' let g:ycm_key_list_select_completion = [''] let g:ycm_key_list_previous_completion = [''] " nnoremap :YcmCompleter GoToDefinition let g:ycm_server_log_level = 'error' let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']} let g:ycm_goto_buffer_command = 'horizontal-split' " commenting let NERDSpaceDelims=1 let NERDCreateDefaultMappings=0 " comment hiding func! IsComment( lnum ) return synIDattr(synID(a:lnum, match(getline(a:lnum),'\S')+1, 1),"name") =~? 'comment' endfun "set fdm=expr set fde=IsComment(v:lnum)?1:IsComment(prevnonblank(v:lnum))?1:IsComment(nextnonblank\(v:lnum))?1:0 " light #073642 dark #002b36 grey #586e75 highlight Folded gui=NONE guifg=#586e75 guibg=#002b36 set foldtext='\ ' let g:folded = 0 function! ToggleComment() if (g:folded == 0) highlight Comment guifg=#002b36 let g:folded=1 else highlight Comment guifg=#586e75 let g:folded=0 endif endfunction let g:myfoldtext = 0 function! ToggleFoldText() if (g:myfoldtext == 0) set foldtext='--'.v:folddashes.'\ '.getline(v:foldstart).'\ ' let g:myfoldtext=1 else set foldtext='\ ' let g:myfoldtext=0 endif endfunction """""""""""""""""""""""""""""" " vim macro to jump to devhelp topics. """""""""""""""""""""""""""""" function! DevHelpCurrentWord() let word = expand("") exe "!devhelp -s " . word . " &" endfunction function! ManCurrentWord() let word = expand("") exe "!man 3 " . word endfunction " vim:foldmethod=marker:foldlevel=0