X-Git-Url: https://git.r.bdr.sh/rbdr/dotfiles/blobdiff_plain/138316b6ce6560eea229a9f0c29d165b5ba12963..1131e293345f98bdd4bd6b7592b759b8572c34f8:/vimrc?ds=inline diff --git a/vimrc b/vimrc index a9bf0d5..4a38153 100755 --- a/vimrc +++ b/vimrc @@ -1,5 +1,9 @@ set nocompatible +" +" Basics +" + set number set ruler syntax on @@ -28,13 +32,11 @@ set wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,vendor/gems/* " Status bar set laststatus=2 -" NERDTree configuration -let NERDTreeIgnore=['\.pyc$', '\.rbc$', '\~$'] -map n :NERDTreeToggle +" allow backspacing over everything in insert mode +set backspace=indent,eol,start -" CTags -map rt :!ctags --extra=+f -R * -map :tnext +" Show (partial) command in the status line +set showcmd " Remember last location in file if has("autocmd") @@ -42,16 +44,9 @@ if has("autocmd") \| exe "normal g'\"" | endif endif -function s:setupWrapping() - set wrap - set wrapmargin=2 - set textwidth=72 -endfunction - -function s:setupMarkup() - call s:setupWrapping() - map p :Hammer -endfunction +" +" File Type Config +" " make uses real tabs au FileType make set noexpandtab @@ -59,27 +54,32 @@ au FileType make set noexpandtab " Thorfile, Rakefile, Vagrantfile and Gemfile are Ruby au BufRead,BufNewFile {Gemfile,Rakefile,Vagrantfile,Thorfile,config.ru} set ft=ruby -" md, markdown, and mk are markdown and define buffer-local preview -au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup() - -" add json syntax highlighting -au BufNewFile,BufRead *.json set ft=javascript - -au BufRead,BufNewFile *.txt call s:setupWrapping() - " make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ ) au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79 " snes syntax highlighting au BufNewFile,BufRead *.asm,*.s set filetype=snes" -" allow backspacing over everything in insert mode -set backspace=indent,eol,start - " load the plugin and indent settings for the detected filetype filetype plugin indent on filetype plugin on -set omnifunc=syntaxcomplete#Complete + +" Directories for swp files +set backupdir=~/.vim/.backup +set directory=~/.vim/.backup + +" Include local vimrc +if filereadable(expand("~/.vimrc.local")) + source ~/.vimrc.local +endif + +" +" Tool Configs +" + +" CTags +map rt :!ctags --extra=+f -R * +map :tnext " Opens an edit command with the path of the currently edited file filled in " Normal mode: e @@ -89,61 +89,70 @@ map e :e =expand("%:p:h") . "/" " Normal mode: t map te :tabe =expand("%:p:h") . "/" -" Unimpaired configuration -" Bubble single lines -nmap [e -nmap ]e -" Bubble multiple lines -vmap [egv -vmap ]egv - -" gist-vim defaults -if has("mac") - let g:gist_clip_command = 'pbcopy' -elseif has("unix") - let g:gist_clip_command = 'xclip -selection clipboard' -endif -let g:gist_detect_filetype = 1 -let g:gist_open_browser_after_post = 1 - -" Use modeline overrides -set modeline -set modelines=10 - -" Default color scheme -set termguicolors -color rbdr - -" Directories for swp files -set backupdir=~/.vim/.backup -set directory=~/.vim/.backup +" % to bounce from do to end etc. +runtime! macros/matchit.vim -" Turn off jslint errors by default -let g:JSLintHighlightErrorLine = 0 +" Dank Mono Italics +highlight Keyword cterm=italic -" MacVIM shift+arrow-keys behavior (required in .vimrc) -let macvim_hig_shift_movement = 1 +" FZF config +set rtp+=$FZF_VIM_PATH -" % to bounce from do to end etc. -runtime! macros/matchit.vim +" Inserts the path of the currently edited file into a command +noremap :FZF -" Show (partial) command in the status line -set showcmd +let g:fzf_layout = { 'down': '40%' } -" Include user's local vim config -if filereadable(expand("~/.vimrc.local")) - source ~/.vimrc.local -endif +" Auto Pairs +let g:AutoPairsMultilineClose = 0 -" Mapping for TagBar -nmap :TagbarToggle -let g:tagbar_ctags_bin="/usr/local/bin/ctags" +" ALE config +let g:ale_linter_aliases = {'svelte': ['css', 'javascript']} +let g:ale_linters = { + \'javascript': ['eslint'], + \'svelte': ['stylelint', 'eslint'] + \} +let g:ale_fixers = { + \'javascript': ['eslint'], + \'svelte': ['eslint'] + \} +let g:ale_fix_on_save = 1 + +" Deoplete config +let g:deoplete#enable_at_startup = 1 +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? "\" : "\" + +" +" A E S T H E T I C S +" " Color Column let &colorcolumn="80,150" -" Add Pathogen -call pathogen#infect() +" Default color scheme +set termguicolors +color rbdr + +" Map colors to vim colors +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'], + \ 'border': ['fg', 'Ignore'], + \ 'prompt': ['fg', 'Conditional'], + \ 'pointer': ['fg', 'Exception'], + \ 'marker': ['fg', 'Keyword'], + \ 'spinner': ['fg', 'Label'], + \ 'header': ['fg', 'Comment'] } + +" +" Editing Shortcuts +" " Folding Settings set foldmethod=syntax @@ -151,11 +160,6 @@ set foldnestmax=10 set nofoldenable set foldlevel=1 -" Fix CtrlP root folder and add some ignores -let g:ctrlp_working_path_mode = 0 -let g:ctrlp_custom_ignore = '\v[\/](\.(git|hg|svn)|node_modules|DS_Store)$' -let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files'] - " Relative numbers autocmd FocusLost * :set norelativenumber autocmd InsertEnter * :set norelativenumber @@ -172,33 +176,6 @@ endfunction nnoremap :call NumberToggle() -" Dank Mono Italics -highlight Keyword cterm=italic - -" FZF config -set rtp+=/usr/local/opt/fzf - -" Inserts the path of the currently edited file into a command -noremap :FZF - -" Map colors to vim colors -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'], - \ 'border': ['fg', 'Ignore'], - \ 'prompt': ['fg', 'Conditional'], - \ 'pointer': ['fg', 'Exception'], - \ 'marker': ['fg', 'Keyword'], - \ 'spinner': ['fg', 'Label'], - \ 'header': ['fg', 'Comment'] } - -" ALE config -let g:ale_linters = {'javascript': ['eslint']} " Move things up and down using Ctrl + Shift nnoremap :m .+1== @@ -207,3 +184,60 @@ inoremap :m .+1==gi inoremap :m .-2==gi vnoremap :m '>+1gv=gv vnoremap :m '<-2gv=gv + +" Limelight / Goyo config + +autocmd! User GoyoEnter Limelight +autocmd! User GoyoLeave Limelight! +nnoremap :Limelight!!== +inoremap :Limelight!!==gi +vnoremap :Limelight!!gv=gv +nnoremap :Goyo== +inoremap :Goyo==gi +vnoremap :Goyogv=gv + +" +" Plug Config +" + +call plug#begin('~/.vim/plugged') + +" Syntaxes +Plug 'https://gitlab.com/rbdr/api-notation.vim.git' +Plug 'elzr/vim-json' +Plug 'mustache/vim-mode' +Plug 'othree/yajs.vim' +Plug 'ARM9/snes-syntax-vim' +Plug 'posva/vim-vue' +Plug 'leafOfTree/vim-svelte-plugin' +Plug 'bumaociyuan/vim-swift' +Plug 'udalov/kotlin-vim' +Plug 'tikhomirov/vim-glsl' +Plug 'jparise/vim-graphql' + +" Editing +Plug 'tpope/vim-endwise' +Plug 'rstacruz/vim-closer' +Plug 'michaeljsmith/vim-indent-object' + +" Distraction free editing +Plug 'junegunn/goyo.vim' +Plug 'junegunn/limelight.vim' + +" Tools +Plug 'editorconfig/editorconfig-vim' +Plug 'dense-analysis/ale' +if has('nvim') + Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } +else + Plug 'Shougo/deoplete.nvim' + Plug 'roxma/nvim-yarp' + Plug 'roxma/vim-hug-neovim-rpc' +endif +Plug 'vim-scripts/LargeFile' +Plug 'tpope/vim-fugitive' +Plug 'milkypostman/vim-togglelist' +Plug 'jremmen/vim-ripgrep' + +" List ends here. Plugins become visible to Vim after this call. +call plug#end()