From 8c08a76cc112cd21233551ddb515a9b3175a5416 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 27 Oct 2017 01:57:57 -0400 Subject: clean up and reorganize vimrc --- vimrc | 714 ++++++++++++++++++++++++------------------------------------------ 1 file changed, 256 insertions(+), 458 deletions(-) (limited to 'vimrc') diff --git a/vimrc b/vimrc index 387e6a2..2c1f9e4 100644 --- a/vimrc +++ b/vimrc @@ -1,237 +1,174 @@ -" based on Eidolos's .vimrc, at http://sartak.org/conf/vimrc - -" General options {{{ -" Miscellaneous {{{ +" options {{{ +" general {{{ set nocompatible - -" indentation FTW.. also plugins FTW! heh filetype indent plugin on - -" automatically flush to disk when using :make, etc. -set autowrite - -" automatically read in external changes if we haven't modified the buffer +syntax on +set modeline " some systems disable this by default +" }}} +" persistence {{{ +set history=10000 +if has("persistent_undo") + set undofile + set undodir=~/.cache/vim/undo +endif +" }}} +" buffers {{{ set autoread - -" Gentoo disables modelines by default -set modeline - -" always join with just one space, even between sentences -set nojoinspaces - -" don't move the cursor to the start of the line when changing buffers +set autowrite +set confirm +set hidden set nostartofline - -" call CursorHold autocommands (and write swap files to disk) more often -set updatetime=2000 - -" strip leading comment characters when joining multiline comments -set formatoptions+=j " }}} -" Display {{{ -" color! -syntax on - -" lines, cols in status line -set ruler - -" display more information in the ruler -set rulerformat=%26(%y%r%m\ (%n)\ %.7l,%.7c\ %=\ %P%) - -" display the number of (characters|lines) in visual mode, also cur command -set showcmd - -" don't display the current mode, since airline does that -set noshowmode - -" a - terse messages (like [+] instead of [Modified] -" o - don't show both reading and writing messages if both occur at once -" t - truncate file names -" T - truncate messages rather than prompting to press enter -" W - don't show [w] when writing -" I - no intro message when starting vim fileless -set shortmess=aotTWI - -" status line -set laststatus=2 - -" display as much of the last line as possible if it's really long -" also display unprintable characters as hex +" display {{{ set display+=lastline,uhex - -" give three lines of context when moving the cursor around -set scrolloff=3 - -" don't redraw the screen during macros etc (NetHack's runmode:teleport) set lazyredraw - -" highlight all matches, we'll see if this works with a different hilight -set hlsearch - -" highlight matching parens for .1s -set showmatch -set matchtime=1 - -" threshold for reporting number of lines changed -set report=0 - -" I generally don't want to have to space through things.. :) -set nomore - -" word wrapping set linebreak - -" only show a menu for completion, never a preview window or things like that -set completeopt=menuone - -" hide the mouse in the gui while typing -set mousehide - -" fold only when I ask for it damnit! -set foldmethod=marker - -" visually indicate wrapped lines +set report=0 +set scrolloff=3 set showbreak=> - -" enable concealing +set showcmd if has('conceal') - set conceallevel=2 concealcursor=i + set conceallevel=2 endif " }}} -" Improve power of commands {{{ -" backspace over autoindent, end of line (to join lines), and preexisting test +" editing {{{ +set autoindent set backspace=indent,eol,start - -" tab completion in ex mode -set wildmenu - -" when doing tab completion, ignore files that match any of these +set cinoptions+=:0,l1,g0,(0,W1s +set expandtab +set formatoptions+=j +set nojoinspaces +set shiftround +set shiftwidth=4 +set softtabstop=-1 +" }}} +" command mode {{{ set wildignore+=*.o,.git/*,.svn/*,blib/* - -" tab completions should ignore case +set wildmenu +set wildmode=longest,list,full if exists("+wildignorecase") set wildignorecase endif - -" remember lotsa fun stuff -set viminfo=!,'1000,f1,/1000,:1000,<1000,@1000,h,n~/.viminfo - -" more stuff to remember -set history=1000 - -" add : as a filename character (allow gf to work with http://foo.bar/) -set isfname+=: - -" tab completion stuff for the command line -set wildmode=longest,list,full - -" always make the help window cover the entire screen -set helpheight=9999 - -" ; is easier to reach than \ -let mapleader = ';' -let maplocalleader = ';' - -" enable persistent undo -if has("persistent_undo") - set undofile - set undodir=~/.cache/vim/undo -endif - -" case insensitive searching, unless i type a capital letter +" }}} +" search {{{ +set hlsearch set ignorecase set smartcase " }}} -" Make vim less whiny {{{ -" :bn with a change in the current buffer? no prob! -set hidden - -" no bells whatsoever +" terminal stuff {{{ set vb t_vb= - -" if you :q with changes it asks you if you want to continue or not -set confirm - -" 50 milliseconds for escape timeout instead of 1000 set ttimeoutlen=50 - -" send more data to the terminal in a way that makes the screen update faster -" more importantly, wraps lines at the terminal level so that copying a single -" line that spans multiple screen lines works properly set ttyfast " }}} -" Indentation {{{ -" normal sized tabs! -set tabstop=8 - -" set to what i like (see #2 in :help tabstop) -set shiftwidth=4 - -" if it looks like a tab, we can delete it like a tab -set softtabstop=-1 - -" no tabs! spaces only.. -set expandtab - -" < and > will hit indentation levels instead of always -4/+4 -set shiftround - -" new line has indentation equal to previous line -set autoindent - -" configure cindent for my coding style -set cinoptions+=:0,l1,g0,(0,W1s -" }}} -" }}} -" Colors {{{ -" default colorscheme {{{ -if has("gui_running") - colorscheme torte -else - set background=light - set t_Co=256 -endif -" }}} -" word completion menu {{{ -highlight Pmenu ctermfg=grey ctermbg=darkblue guifg=grey guibg=darkblue -highlight PmenuSel ctermfg=red ctermbg=darkblue guifg=red guibg=darkblue -highlight PmenuSbar ctermbg=cyan guibg=cyan -highlight PmenuThumb ctermfg=red guifg=red - -highlight WildMenu ctermfg=grey ctermbg=darkblue guifg=grey guibg=darkblue " }}} -" folding {{{ -highlight Folded ctermbg=black ctermfg=darkgreen guibg=black guifg=green +" colors {{{ +" general {{{ +set background=light +set t_Co=256 " }}} -" hlsearch {{{ -highlight Search NONE ctermfg=red guifg=red +" recolorings {{{ +highlight Pmenu ctermfg=grey ctermbg=darkblue guifg=grey guibg=darkblue +highlight PmenuSel ctermfg=red ctermbg=darkblue guifg=red guibg=darkblue +highlight PmenuSbar ctermbg=cyan guibg=cyan +highlight PmenuThumb ctermfg=red guifg=red +highlight WildMenu ctermfg=grey ctermbg=darkblue guifg=grey guibg=darkblue +highlight Folded ctermfg=darkgreen ctermbg=black guifg=green guibg=black +highlight Search NONE ctermfg=red guifg=red " }}} -" color end of line whitespace {{{ +" highlight end of line whitespace {{{ autocmd InsertEnter * syn clear EOLWS | syn match EOLWS excludenl /\s\+\%#\@!$/ autocmd InsertLeave * syn clear EOLWS | syn match EOLWS excludenl /\s\+$/ highlight EOLWS ctermbg=red guibg=red " }}} -" conflict markers {{{ +" highlight diff conflict markers {{{ match ErrorMsg '^\(<\||\|=\|>\)\{7\}\([^=].\+\)\?$' " }}} -" fonts {{{ -if has('win32') || has('win64') || has('win32unix') - set guifont=Lucida_Console -elseif has('unix') - set guifont=Monospace\ 8 -endif " }}} +" bindings {{{ +" general {{{ +let mapleader = ';' +let maplocalleader = ';' " }}} -" Autocommands {{{ +" keep the current selection when indenting {{{ +xnoremap < >gv +" }}} +" M to :make {{{ +noremap M :makek +" }}} +" F11 for spell checking {{{ +function! s:spell() + if !exists("s:spell_check") || s:spell_check == 0 + let s:spell_check = 1 + setlocal spell spelllang=en_us + else + let s:spell_check = 0 + setlocal spell spelllang= + endif +endfunction +noremap :call spell() +inoremap :call spell() +" }}} +" arrow keys {{{ +noremap gk +noremap gj +inoremap gk +inoremap gj +" }}} +" editing binary files {{{ +nnoremap :%!xxd +nnoremap :%!xxd -r +" }}} +" auto-append closing characters {{{ +for pair in [['(', ')'], ['{', '}'], ['[', ']']] + exe "inoremap " . pair[0] . " " . pair[0] . pair[1] . "" + exe "inoremap " . pair[0] . " " . pair[0] . "" . pair[1] . "O" + exe "inoremap " . pair[1] . " strpart(getline('.'), col('.')-1, 1) == '" . pair[1] . "' ? '' : '" . pair[1] . "'" +endfor +inoremap ' strpart(getline('.'), col('.')-1, 1) == "\'" ? "\" : col('.') == 1 \|\| match(strpart(getline('.'), col('.')-2, 1), '\W') != -1 ? "\'\'\" : "\'" +inoremap " strpart(getline('.'), col('.')-1, 1) == "\"" ? "\" : "\"\"\" +" }}} +" tab for completion {{{ +inoremap strpart(getline('.'), 0, col('.')-1) =~ '^\s*$' ? "\" : "\" +inoremap +" }}} +" easier tag traversal {{{ +nnoremap +nnoremap +autocmd CmdWinEnter * nnoremap +" }}} +" buffer switching {{{ +nnoremap H :bp +nnoremap L :bn +" }}} +" fixups for my keyboard remappings {{{ +nmap ) 0 +nmap g) g0 +nmap \ +" }}} +" miscellaneous {{{ +nnoremap e c +nnoremap E C +nnoremap r +nnoremap Y y$ +nnoremap , : +xnoremap , : +nnoremap ! :! +xnoremap ! :! +autocmd BufEnter * exe "nnoremap T :e " . expand('%') +nnoremap / :nohl +nnoremap :w +nnoremap \ :q +nnoremap :bd +" }}} +" }}} +" hooks {{{ " When editing a file, always jump to the last cursor position {{{ autocmd BufReadPost * \ if &filetype != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif " }}} -" Update ctags after writing {{{ -autocmd BufWritePost * if filereadable('tags') | silent exe "!ctags -a %" | redraw | endif -" }}} " Prompt to create directories if they don't exist {{{ autocmd BufNewFile * :call ensure_dir_exists() function! s:ensure_dir_exists () @@ -252,10 +189,131 @@ function! s:ask_quit (msg, proposed_action) endif endfunction " }}} -" Try harder to keep syntax highlighting in sync {{{ -autocmd BufEnter,CursorHold,CursorHoldI * syntax sync fromstart " }}} -" Update zsh history when editing a new file - see 'vim' wrapper in .zshrc {{{ +" plugin configuration {{{ +" ale {{{ +let g:ale_lint_on_text_changed = 'normal' +let g:ale_lint_on_insert_leave = 1 +let g:ale_history_enabled = 0 +let g:ale_history_log_output = 0 +" }}} +" airline +" commentary {{{ +map x :Commentary +" }}} +" denite {{{ +autocmd VimEnter * call denite#custom#map('insert', '', '') +autocmd VimEnter * call denite#custom#map('insert', '', '') +if executable('ag') + autocmd VimEnter * call denite#custom#var('file_rec', 'command', ['ag', '--hidden', '-l', '.']) + autocmd VimEnter * call denite#custom#var('grep', 'command', ['ag']) + autocmd VimEnter * call denite#custom#var('grep', 'default_opts', ['--hidden']) + autocmd VimEnter * call denite#custom#var('grep', 'recursive_opts', []) + autocmd VimEnter * call denite#custom#var('grep', 'pattern_opt', []) + autocmd VimEnter * call denite#custom#var('grep', 'separator', []) +endif +nnoremap t :Denite -direction=dynamictop buffer file_rec +nnoremap b :Denite -direction=dynamictop buffer +nnoremap ff :Denite -direction=dynamictop grep:.::! +nnoremap fh :Denite -direction=dynamictop help +nnoremap ft :Denite -direction=dynamictop filetype +nnoremap f/ :Denite -direction=dynamictop line +" }}} +" ft-bzl +" git +" go +" gundo {{{ +if has("python") + nnoremap U :silent GundoToggle + let g:gundo_help = 0 + let g:gundo_preview_bottom = 1 +else + let g:gundo_disable = 1 +endif +" }}} +" ledger +" multiple-cursors +" neosnippet {{{ +let g:neosnippet#snippets_directory = '~/.vim/snippets' +let g:neosnippet#disable_runtime_snippets = { '_' : 1 } + +let i_tab = maparg("", "i", 0, 1) +let i_stab = maparg("", "i", 0, 1) +let s_tab = maparg("", "s", 0, 1) +imap + \ neosnippet#expandable_or_jumpable() ? + \ "\(neosnippet_expand_or_jump)" : + \ i_tab["expr"] ? eval(i_tab["rhs"]) : eval("\"\\" . i_tab["rhs"] . "\"") +imap + \ neosnippet#expandable_or_jumpable() ? + \ "\(neosnippet_expand_or_jump)" : + \ i_stab["expr"] ? eval(i_stab["rhs"]) : eval("\"\\" . i_stab["rhs"] . "\"") +smap + \ neosnippet#expandable_or_jumpable() ? + \ "\(neosnippet_expand_or_jump)" : + \ s_tab["expr"] ? eval(s_tab["rhs"]) : eval("\"\\" . s_tab["rhs"] . "\"") +" }}} +" perl +" puppet +" rainbow {{{ +let g:rainbow = 1 +let g:rainbow_paren = 1 +let g:rainbow_brace = 1 +" }}} +" rust +" startify {{{ +let g:startify_list_order = ['dir', 'bookmarks', 'commands'] +let g:startify_files_number = 7 +let g:startify_commands = [ + \ {'t': ['Open file', 'Denite -direction=dynamictop buffer file_rec']}, + \ {'ff': ['Grep', 'Denite -direction=dynamictop grep:.::!']}, + \ {'fh': ['Help', 'Denite -direction=dynamictop help']}, + \ ] +let g:startify_change_to_vcs_root = 1 +let g:startify_custom_indices = [ + \'!', '@', '#', '$', '%', '^', '&', '*', '(', ')' + \] +let g:startify_custom_header = [] +let fortune = system('fortune -n200 -s ~/.fortune | grep -v -E "^$"') +let g:startify_custom_footer = [''] + map(split(fortune, '\n'), '" ".v:val') +let g:startify_skiplist = ['^/usr/share/vim', '/.git/'] +for file in [ '.gitignore', expand('~/.gitignore') ] + if filereadable(file) + for line in readfile(file) + let line = substitute(line, '#.*', '', '') + if line != '' && line[0] != '!' + let line = substitute(line, "[~.]", "\\\\&", 'g') + let line = substitute(line, "\\*\\*", ".*", 'g') + let line = substitute(line, "\\*", "[^/]*", 'g') + let line = substitute(line, "?", ".", 'g') + call add(g:startify_skiplist, line) + endif + endfor + endif +endfor +" }}} +" terraform {{{ +let g:terraform_fmt_on_save = 1 +" }}} +" textobj {{{ +let g:Textobj_defs = [ + \['/', 'Textobj_paired', '/'], + \['\|', 'Textobj_paired', '\|'], + \['f', 'Textobj_fold'], + \[',', 'Textobj_arg'], +\] +" }}} +" Load plugins that don't use vim's format {{{ +runtime macros/matchit.vim +" just loading this directly from the plugin directory fails because language +" syntax files override the highlighting +" using BufWinEnter because that is run after modelines are run (so it catches +" modelines which update highlighting) +autocmd BufWinEnter,FileType * runtime plugin/rainbow_paren.vim +" }}} +" }}} +" things that should be plugins {{{ +" update zsh history when editing a new file - see 'vim' wrapper in .zshrc {{{ if $SHELL =~ 'zsh' && exists('g:_zsh_hist_fname') let s:initial_files = {} @@ -322,37 +380,6 @@ if $SHELL =~ 'zsh' && exists('g:_zsh_hist_fname') endfunction endif " }}} -" start with the current fold open {{{ -autocmd BufReadPost * normal zv -" }}} -" disable syntax highlighting for huge files (it's really slow) {{{ -autocmd BufEnter * if line('$') > 20000 | syntax off | endif -" }}} -" regularly check for autoread {{{ -autocmd BufEnter,CursorHold,CursorHoldI * silent! checktime -" }}} -" }}} -" Remappings {{{ -" Keep the current selection when indenting (thanks cbus) {{{ -xnoremap < >gv -" }}} -" M to :make {{{ -noremap M :makek -" }}} -" Painless spell checking (F11) {{{ -function! s:spell() - if !exists("s:spell_check") || s:spell_check == 0 - let s:spell_check = 1 - setlocal spell spelllang=en_us - else - let s:spell_check = 0 - setlocal spell spelllang= - endif -endfunction -noremap :call spell() -inoremap :call spell() -" }}} " diff between current file and its original state {{{ let s:foldmethod = &foldmethod let s:foldenable = &foldenable @@ -419,13 +446,7 @@ nnoremap ds :call diffstart('read # normal ggdd') nnoremap dc :call diffstart('call append(0, split(s:vcs_orig(expand("#:.")), "\n", 1)) normal Gdddd') nnoremap de :call diffstop() " }}} -" Arrow keys {{{ -noremap gk -noremap gj -inoremap gk -inoremap gj -" }}} -" Nopaste {{{ +" nopaste {{{ function! s:nopaste(visual) if a:visual silent exe "normal gv:!nopaste\" @@ -484,228 +505,5 @@ endfunction nnoremap K :call Help(0, [], 'man') xnoremap K :call Help(1, [], 'man') " }}} -" ;= to align = signs {{{ -function! s:align_assignments() - " Patterns needed to locate assignment operators... - let ASSIGN_OP = '[-+*/%|&]\?=\@= :call align_assignments() -" fix this to work in visual mode properly -"xnoremap = :call align_assignments() -" }}} -" editing binary files {{{ -nnoremap :%!xxd -nnoremap :%!xxd -r -" }}} -" keystroke reducers {{{ -" tags -nnoremap -nnoremap -autocmd CmdWinEnter * nnoremap - -" 'e' instead of 'c' for change -nnoremap e c -nnoremap E C - -" 'r' instead of '^R' for redo -nnoremap r - -" buffer switching -nnoremap H :bp -nnoremap L :bn - -" clear the search highlight -nnoremap / :nohl - -" easier commands -nnoremap , : -xnoremap , : -nnoremap ! :! -xnoremap ! :! - -" writing, quitting -nnoremap :w -nnoremap \ :q -nnoremap :bd - -" allow some commands to work regardless of keyboard mode -nmap ) 0 -nmap g) g0 -nmap \ -" }}} -" auto-append closing characters {{{ -for pair in [['(', ')'], ['{', '}'], ['[', ']']] - exe "inoremap " . pair[0] . " " . pair[0] . pair[1] . "" - exe "inoremap " . pair[0] . " " . pair[0] . "" . pair[1] . "O" - exe "inoremap " . pair[1] . " strpart(getline('.'), col('.')-1, 1) == '" . pair[1] . "' ? '' : '" . pair[1] . "'" -endfor -inoremap ' strpart(getline('.'), col('.')-1, 1) == "\'" ? "\" : col('.') == 1 \|\| match(strpart(getline('.'), col('.')-2, 1), '\W') != -1 ? "\'\'\" : "\'" -inoremap " strpart(getline('.'), col('.')-1, 1) == "\"" ? "\" : "\"\"\" -" }}} -" tab for completion {{{ -inoremap strpart(getline('.'), 0, col('.')-1) =~ '^\s*$' ? "\" : "\" -inoremap -" }}} -" Miscellaneous {{{ -" have Y behave analogously to D rather than to dd -nnoremap Y y$ - -nmap g_ g0 - -autocmd BufEnter * exe "nnoremap T :e " . expand('%') -" }}} -" }}} -" Plugins {{{ -" ale {{{ -let g:ale_lint_on_text_changed = 'normal' -let g:ale_lint_on_insert_leave = 1 -let g:ale_history_enabled = 0 -let g:ale_history_log_output = 0 -" }}} -" airline -" commentary {{{ -map x :Commentary -" }}} -" denite {{{ -autocmd VimEnter * call denite#custom#map('insert', '', '') -autocmd VimEnter * call denite#custom#map('insert', '', '') -if executable('ag') - autocmd VimEnter * call denite#custom#var('file_rec', 'command', ['ag', '--hidden', '-l', '.']) - autocmd VimEnter * call denite#custom#var('grep', 'command', ['ag']) - autocmd VimEnter * call denite#custom#var('grep', 'default_opts', ['--hidden']) - autocmd VimEnter * call denite#custom#var('grep', 'recursive_opts', []) - autocmd VimEnter * call denite#custom#var('grep', 'pattern_opt', []) - autocmd VimEnter * call denite#custom#var('grep', 'separator', []) -endif -nnoremap t :Denite -direction=dynamictop buffer file_rec -nnoremap b :Denite -direction=dynamictop buffer -nnoremap ff :Denite -direction=dynamictop grep:.::! -nnoremap fh :Denite -direction=dynamictop help -nnoremap ft :Denite -direction=dynamictop filetype -nnoremap f/ :Denite -direction=dynamictop line -" }}} -" ft-bzl -" git -" go -" gundo {{{ -if has("python") - nnoremap U :silent GundoToggle - let g:gundo_help = 0 - let g:gundo_preview_bottom = 1 -else - let g:gundo_disable = 1 -endif -" }}} -" ledger -" multiple-cursors -" neosnippet {{{ -let g:neosnippet#snippets_directory = '~/.vim/snippets' -let g:neosnippet#disable_runtime_snippets = { '_' : 1 } - -let i_tab = maparg("", "i", 0, 1) -let i_stab = maparg("", "i", 0, 1) -let s_tab = maparg("", "s", 0, 1) -imap - \ neosnippet#expandable_or_jumpable() ? - \ "\(neosnippet_expand_or_jump)" : - \ i_tab["expr"] ? eval(i_tab["rhs"]) : eval("\"\\" . i_tab["rhs"] . "\"") -imap - \ neosnippet#expandable_or_jumpable() ? - \ "\(neosnippet_expand_or_jump)" : - \ i_stab["expr"] ? eval(i_stab["rhs"]) : eval("\"\\" . i_stab["rhs"] . "\"") -smap - \ neosnippet#expandable_or_jumpable() ? - \ "\(neosnippet_expand_or_jump)" : - \ s_tab["expr"] ? eval(s_tab["rhs"]) : eval("\"\\" . s_tab["rhs"] . "\"") -" }}} -" perl -" puppet -" rainbow {{{ -let g:rainbow = 1 -let g:rainbow_paren = 1 -let g:rainbow_brace = 1 -" }}} -" rust -" startify {{{ -let g:startify_list_order = ['dir', 'bookmarks', 'commands'] -let g:startify_files_number = 7 -let g:startify_commands = [ - \ {'t': ['Open file', 'Denite -direction=dynamictop buffer file_rec']}, - \ {'ff': ['Grep', 'Denite -direction=dynamictop grep:.::!']}, - \ {'fh': ['Help', 'Denite -direction=dynamictop help']}, - \ ] -let g:startify_change_to_vcs_root = 1 -let g:startify_custom_indices = [ - \'!', '@', '#', '$', '%', '^', '&', '*', '(', ')' - \] -let g:startify_custom_header = [] -let fortune = system('fortune -n200 -s ~/.fortune | grep -v -E "^$"') -let g:startify_custom_footer = [''] + map(split(fortune, '\n'), '" ".v:val') -let g:startify_skiplist = ['^/usr/share/vim', '/.git/'] -for file in [ '.gitignore', expand('~/.gitignore') ] - if filereadable(file) - for line in readfile(file) - let line = substitute(line, '#.*', '', '') - if line != '' && line[0] != '!' - let line = substitute(line, "[~.]", "\\\\&", 'g') - let line = substitute(line, "\\*\\*", ".*", 'g') - let line = substitute(line, "\\*", "[^/]*", 'g') - let line = substitute(line, "?", ".", 'g') - call add(g:startify_skiplist, line) - endif - endfor - endif -endfor -" }}} -" terraform {{{ -let g:terraform_fmt_on_save = 1 -" }}} -" textobj {{{ -let g:Textobj_defs = [ - \['/', 'Textobj_paired', '/'], - \['\|', 'Textobj_paired', '\|'], - \['f', 'Textobj_fold'], - \[',', 'Textobj_arg'], -\] -" }}} -" Load plugins that don't use vim's format {{{ -runtime macros/matchit.vim -" just loading this directly from the plugin directory fails because language -" syntax files override the highlighting -" using BufWinEnter because that is run after modelines are run (so it catches -" modelines which update highlighting) -autocmd BufWinEnter,FileType * runtime plugin/rainbow_paren.vim -" }}} " }}} +" vim: fdm=marker -- cgit v1.2.3-54-g00ecf