set nocompatible call plug#begin('~/.vim/plugged') Plug 'bling/vim-airline' " Plug 'vim-airline/vim-airline-themes' Plug 'tpope/vim-repeat' Plug 'tpope/vim-surround' Plug 'tpope/vim-fugitive' Plug 'tpope/vim-endwise' Plug 'tpope/vim-vinegar' Plug 'tpope/vim-unimpaired' " Plug 'tpope/vim-characterize' Plug 'tpope/vim-speeddating' Plug 'tpope/vim-jdaddy' " Plug 'w0rp/ale' " previously 'neomake/neomake, 'scrooloose/syntastic' Plug 'SirVer/ultisnips' Plug 'honza/vim-snippets' Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " previously YouCompleteMe Plug 'carlitux/deoplete-ternjs', { 'do': 'npm install -g tern' } Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'junegunn/fzf.vim' Plug 'christoomey/vim-tmux-navigator' Plug 'terryma/vim-multiple-cursors' Plug 'easymotion/vim-easymotion' Plug 'justinmk/vim-sneak' Plug 'majutsushi/tagbar' Plug 'scrooloose/nerdcommenter' Plug 'gregsexton/MatchTag' " highlight matching HTML tag Plug 'Raimondi/delimitMate' Plug 'rstacruz/sparkup', {'rtp': 'vim/'} Plug 'mbbill/undotree' Plug 'coderifous/textobj-word-column.vim' Plug 'kshenoy/vim-signature' Plug 'junegunn/vim-easy-align' Plug 'qstrahl/vim-matchmaker' " highlight matching word under cursor Plug 'bruno-/vim-vertical-move' Plug 'lfilho/cosco.vim' Plug 'ntpeters/vim-better-whitespace' Plug 'sbdchd/neoformat' Plug 'sdanielf/vim-stdtabs' Plug 'mhinz/vim-signify' " previously 'airblade/vim-gitgutter' Plug 'terryma/vim-expand-region' " previously 'gcmt/wildfire.vim' Plug 'tommcdo/vim-exchange' Plug 'vim-scripts/argtextobj.vim' Plug 'vim-scripts/matchit.zip' " % will match more things Plug 'AndrewRadev/splitjoin.vim' Plug 'vim-scripts/utl.vim' Plug 'junegunn/goyo.vim' Plug 'EinfachToll/DidYouMean' Plug 'jceb/vim-orgmode' " Languages & Syntax Plug 'sheerun/vim-polyglot' Plug 'idris-hackers/idris-vim' Plug 'eagletmt/ghc-mod' Plug 'bitc/vim-hdevtools' "Plug 'eagletmt/neco-ghc' "Plug 'lukerandall/haskellmode-vim' Plug 'ryanoasis/vim-devicons' " Themes "Plug 'w0ng/vim-hybrid' "Plug 'sickill/vim-monokai' Plug 'tomasr/molokai' call plug#end() " general goodness "set shell=/bin/bash " Syntastic breaks when trying to write to /var/folders syntax enable let mapleader="\" " let mapleader="," let maplocalleader="\\" set hidden " allow hidden unsaved buffers set history=1000 " longer history set noswapfile " turn off swapfiles set number " line numbers set showcmd " show the command as it is typed set showmode set wildmenu set backspace=indent,eol,start set ttyfast "set wildmode=longest:full set wildmode=list:longest " try this on for a while set autoread " when a file is changed externally set ruler set cursorline " Highlight current line set encoding=utf-8 " Necessary to show unicode glyphs set laststatus=2 " Always show the statusline set scrolloff=5 " Give us a few lines before and after the cursor " long lines set wrap set formatoptions=rqn1 set textwidth=80 " set colorcolumn=80 " persistent undo set undodir=~/.vim/undodir set undofile " indentation set autoindent set smartindent " search set hlsearch set incsearch set ignorecase set gdefault " now substitutions assume /g set smartcase " if we include uppercase, it will be case sensitive set showmatch " matching brackets set matchtime=2 " blink brackets " clear highlighting nnoremap / :noh " regex set magic " tab stops set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set smarttab " so we get html goodies in php files "au BufRead *.php set ft=php.html "au BufNewFile *.php set ft=php.html " set thesaurus+=~/.wordlists/mthesaur.txt set dictionary+=/usr/share/dict/words " hide toolbar, etc. if has("gui_running") set gfn=Terminus\ 8 set go=-t endif " Colors " colorscheme monokai colorscheme molokai highlight Normal ctermbg=NONE highlight SignColumn ctermbg=NONE highlight LineNr ctermbg=NONE ctermfg=darkgrey " highlight StatusLine guibg=NONE ctermfg=NONE ctermbg=red " Tagbar nnoremap t :TagbarToggle " Supertab " let g:SuperTabDefaultCompletionType="context" " UltiSnips let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" " open the current file for edit in Perforce nnoremap p4 :! p4 edit % " open split and switch to it nnoremap v vl nnoremap s sj " Haskellmode "let g:ghc = "/usr/bin/ghc" "let g:haddock_browser = "open" "let g:haddock_browser_callformat = "%s %s" " hdevtools " nnoremap ht :HdevtoolsType " nnoremap hc :HdevtoolsClear " nnoremap hi :HdevtoolsInfo " autocmd BufEnter *.hs set formatprg=pointfree " automatically open and close the popup menu / preview window " au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif " set completeopt=menu,preview,longest " Undotree nnoremap u :UndotreeToggle " Matchmaker let g:matchmaker_enable_startup = 1 " Cosco autocmd FileType javascript,css nmap ; (cosco-commaOrSemiColon) autocmd FileType javascript,css imap ; (cosco-commaOrSemiColon) " Browser let g:netrw_browsex_viewer = "browser" " FZF nnoremap a :Ag nnoremap f :Files nnoremap b :Buffers nnoremap w :Windows nnoremap c :Commands nnoremap hf :History nnoremap hc :History: nnoremap hs :History/ nnoremap l :BLines nnoremap l :Lines nnoremap t :BTags nnoremap t :Tags nnoremap gc :BCommits nnoremap gc :Commits nmap (fzf-maps-n) xmap (fzf-maps-x) omap (fzf-maps-o) imap (fzf-complete-word) imap (fzf-complete-path) imap (fzf-complete-file-ag) imap (fzf-complete-line) " Neoformat " autocmd BufWritePre *.js Neoformat " autocmd FileType javascript set formatprg=prettier\ --stdin " vim-easy-align xmap ga (EasyAlign) nmap ga (EasyAlign) " EasyMotion let g:EasyMotion_smartcase = 1 " Deoplete let g:deoplete#enable_at_startup = 1 let g:deoplete#enable_smart_case = 1 " vim-tmux-navigator - needed due to a bug in MacOS terminfo nnoremap :TmuxNavigateLeft " Tabs nmap 1 1gt nmap 2 2gt nmap 3 3gt nmap 4 4gt nmap 5 5gt nmap 6 6gt nmap 7 7gt nmap 8 8gt nmap 9 9gt " Goyo nmap g :Goyo " Airline let g:airline#extensions#tabline#enabled = 1