set nocompatible
+"
+" Basics
+"
+
set number
set ruler
syntax on
" Status bar
set laststatus=2
-" NERDTree configuration
-let NERDTreeIgnore=['\.pyc$', '\.rbc$', '\~$']
-map <Leader>n :NERDTreeToggle<CR>
+" allow backspacing over everything in insert mode
+set backspace=indent,eol,start
-" CTags
-map <Leader>rt :!ctags --extra=+f -R *<CR><CR>
-map <C-\> :tnext<CR>
+" Show (partial) command in the status line
+set showcmd
" Remember last location in file
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 <buffer> <Leader>p :Hammer<CR>
-endfunction
+"
+" File Type Config
+"
" make uses real tabs
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 <Leader>rt :!ctags --extra=+f -R *<CR><CR>
+map <C-\> :tnext<CR>
+
" Opens an edit command with the path of the currently edited file filled in
" Normal mode: <Leader>e
map <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
" Normal mode: <Leader>t
map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
-" Unimpaired configuration
-" Bubble single lines
-nmap <C-Up> [e
-nmap <C-Down> ]e
-" Bubble multiple lines
-vmap <C-Up> [egv
-vmap <C-Down> ]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
+" % to bounce from do to end etc.
+runtime! macros/matchit.vim
-" Default color scheme
-set termguicolors
-color rbdr
+" Dank Mono Italics
+highlight Keyword cterm=italic
-" Directories for swp files
-set backupdir=~/.vim/.backup
-set directory=~/.vim/.backup
+" FZF config
+set rtp+=/usr/local/opt/fzf
-" Turn off jslint errors by default
-let g:JSLintHighlightErrorLine = 0
+" Inserts the path of the currently edited file into a command
+noremap <C-P> :FZF <CR>
-" MacVIM shift+arrow-keys behavior (required in .vimrc)
-let macvim_hig_shift_movement = 1
+" 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
-" % to bounce from do to end etc.
-runtime! macros/matchit.vim
+"
+" A E S T H E T I C S
+"
-" Show (partial) command in the status line
-set showcmd
+" Color Column
+let &colorcolumn="80,150"
-" Include user's local vim config
-if filereadable(expand("~/.vimrc.local"))
- source ~/.vimrc.local
-endif
+" Default color scheme
+set termguicolors
+color rbdr
-" Mapping for TagBar
-nmap <F8> :TagbarToggle<CR>
-let g:tagbar_ctags_bin="/usr/local/bin/ctags"
+" 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'] }
-" Color Column
-let &colorcolumn="80,150"
+"
+" Editing Shortcuts
+"
" Folding Settings
set foldmethod=syntax
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
nnoremap <C-n> :call NumberToggle()<cr>
-" 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 <C-P> :FZF <CR>
-
-" 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 <C-S-j> :m .+1<CR>==
vnoremap <C-S-j> :m '>+1<CR>gv=gv
vnoremap <C-S-k> :m '<-2<CR>gv=gv
-" Plug configuration
-call plug#begin('~/.vim/plugged')
-
"
-" Plugin List
+" Plug Config
"
+call plug#begin('~/.vim/plugged')
+
" Syntaxes
Plug 'rbdr/api-notation.vim'
Plug 'elzr/vim-json'
" Editing
Plug 'jiangmiao/auto-pairs'
-" Plug 'tpope/vim-endwise.git'
+Plug 'tpope/vim-endwise'
Plug 'michaeljsmith/vim-indent-object'
" Tools
Plug 'editorconfig/editorconfig-vim'
-Plug 'w0rp/ale'
+Plug 'dense-analysis/ale'
Plug 'vim-scripts/LargeFile'
Plug 'tpope/vim-fugitive'
Plug 'milkypostman/vim-togglelist'