--- /dev/null
+[submodule "pack/tpope/start/vim-surround"]
+ path = pack/tpope/start/vim-surround
+ url = https://github.com/tpope/vim-surround
+[submodule "pack/tpope/start/vim-commentary"]
+ path = pack/tpope/start/vim-commentary
+ url = https://github.com/tpope/vim-commentary
+[submodule "pack/tpope/start/vim-fugitive"]
+ path = pack/tpope/start/vim-fugitive
+ url = https://github.com/tpope/vim-fugitive
+[submodule "pack/tpope/start/vim-unimpaired"]
+ path = pack/tpope/start/vim-unimpaired
+ url = https://github.com/tpope/vim-unimpaired
+[submodule "pack/tpope/start/vim-vinegar"]
+ path = pack/tpope/start/vim-vinegar
+ url = https://github.com/tpope/vim-vinegar
+[submodule "pack/tpope/start/vim-sensible"]
+ path = pack/tpope/start/vim-sensible
+ url = https://github.com/tpope/vim-sensible
--- /dev/null
+setlocal spell
+let b:undo_ftplugin .= '|setlocal spell<'
--- /dev/null
+nnoremap <buffer> <Left> :colder<CR>
+nnoremap <buffer> <Right> :cnewer<CR>
--- /dev/null
+setlocal path+=.,src/
+setlocal path+=$RUST_SRC_PATH
+setlocal path-=/usr/include
+setlocal tags=tags;/
+setlocal tags+=rusty-tags.vi;/
+setlocal tags+=$RUST_SRC_PATH/tags
+compiler cargo
+let maplocalleader = "\<Space>"
+
+" nnoremap <buffer> ,c
+" \ :<C-U>make c<CR>
+"
+" nnoremap <buffer> ,c
+" \ :<C-U>compiler cargo<CR>
+"
+" nnoremap <buffer> ,r
+" \ :<C-U>compiler rustc<CR>
+
+" setlocal tags=./rusty-tags.vi;/,$RUST_SRC_PATH/rusty-tags.vi
+" setlocal tags=./tags,.git/hooks/tags
+"
+" nnoremap <leader>t :silent! exec "!rusty-tags vi --quiet --start-dir=" . expand('%:p:h') . "&" | redraw!
+"
+
+autocmd QuickfixCmdPost [^l]* nested cwindow
+
+nnoremap <buffer> <localleader>c
+ \ :<C-U>make clippy<CR>
+nnoremap <buffer> <localleader>b
+ \ :<C-U>make b<CR>
+nnoremap <buffer> <localleader>t
+ \ :<C-U>make t<CR>
+nnoremap <buffer> <localleader>r
+ \ :<C-U>make r<CR>
+nnoremap <buffer> <localleader>f
+ \ :<C-U>make fmt<CR>
+
+let b:undo_ftplugin .= '|setlocal makeprg< errorformat<'
+ \ . '|nunmap <buffer> <localleader>b'
+ \ . '|nunmap <buffer> <localleader>c'
+ \ . '|nunmap <buffer> <localleader>t'
+ \ . '|nunmap <buffer> <localleader>r'
+ \ . '|nunmap <buffer> <localleader>f'
--- /dev/null
+" make list-like commands more intuitive
+function! CCR()
+ let cmdline = getcmdline()
+ if cmdline =~ '\v\C^(ls|files|buffers)'
+ " like :ls but prompts for a buffer command
+ return "\<CR>:b"
+ elseif cmdline =~ '\v\C/(#|nu|num|numb|numbe|number)$'
+ " like :g//# but prompts for a command
+ return "\<CR>:"
+ elseif cmdline =~ '\v\C^(dli|il)'
+ " like :dlist or :ilist but prompts for a count for :djump or :ijump
+ return "\<CR>:" . cmdline[0] . "j " . split(cmdline, " ")[1] . "\<S-Left>\<Left>"
+ elseif cmdline =~ '\v\C^(cli|lli)'
+ " like :clist or :llist but prompts for an error/location number
+ return "\<CR>:sil " . repeat(cmdline[0], 2) . "\<Space>"
+ elseif cmdline =~ '\C^old'
+ " like :oldfiles but prompts for an old file to edit
+ set nomore
+ return "\<CR>:sil se more|e #<"
+ elseif cmdline =~ '\C^changes'
+ " like :changes but prompts for a change to jump to
+ set nomore
+ return "\<CR>:sil se more|norm! g;\<S-Left>"
+ elseif cmdline =~ '\C^ju'
+ " like :jumps but prompts for a position to jump to
+ set nomore
+ return "\<CR>:sil se more|norm! \<C-o>\<S-Left>"
+ elseif cmdline =~ '\C^marks'
+ " like :marks but prompts for a mark to jump to
+ return "\<CR>:norm! `"
+ elseif cmdline =~ '\C^undol'
+ " like :undolist but prompts for a change to undo
+ return "\<CR>:u "
+ else
+ return "\<CR>"
+ endif
+endfunction
+
+cnoremap <expr> <CR> CCR()
--- /dev/null
+autocmd BufNewFile,BufRead */irc/*.log setfiletype irssilog
--- /dev/null
+let g:rust_fold = 1
+let g:rustfmt_autosave = 1
+let g:ftplugin_rust_source_path = $HOME . '/dev/rust'
--- /dev/null
+Subproject commit f8238d70f873969fb41bf6a6b07ca63a4c0b82b1
--- /dev/null
+Subproject commit d73fe3c1920576c10e18d8245b860e29e55a6813
--- /dev/null
+Subproject commit 2d9f34c09f548ed4df213389caa2882bfe56db58
--- /dev/null
+Subproject commit f51a26d3710629d031806305b6c8727189cd1935
--- /dev/null
+Subproject commit 4afbe5ebf32ad85341b4c02b0e1d8ca96a64c561
--- /dev/null
+Subproject commit b245f3ab4580eba27616a5ce06a56d5f791e67bd
--- /dev/null
+function StripTrailingWhitespace()
+ if !&binary && &filetype != 'diff'
+ normal mz
+ normal Hmy
+ %s/\s\+$//e
+ normal 'yz<CR>
+ normal `z
+ endif
+endfunction
+
+nnoremap <Plug>StripTrailingWhitespace
+ \ :<C-U>call <SID>StripTrailingWhitespace()<CR>
--- /dev/null
+let mapleader="\\"
+
+set hidden
+
+set number
+set relativenumber
+
+set encoding=utf-8
+
+set shiftwidth=4
+let &softtabstop = &shiftwidth
+set expandtab
+
+set wildignore+=tags,cscope.out
+set wildignorecase
+
+if executable('rg')
+ set grepprg=rg\ --vimgrep
+endif
+
+set statusline=%<\ %f\ %m%r%y%w%=\ L:\ \%l\/\%L\ C:\ \%c\
+
+nnoremap gb :ls<CR>:b<Space>
+nnoremap <leader>b :buffer *
+nnoremap <leader>e :edit **/*
+nnoremap <leader>f :find *
+
+nnoremap <leader>cr :call ccr#CCR()