From 2e885acd2773579a379750d6c7ad046bea8ba314 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Thu, 25 Feb 2016 09:01:53 -0500 Subject: Initial --- .gitignore | 2 + .netrwhist | 10 ++ .vim | 1 + autoload/pathogen.vim | 353 ++++++++++++++++++++++++++++++++++++++++++++++++++ gen-setup.sh | 59 +++++++++ init.vim | 192 +++++++++++++++++++++++++++ link-vimrc.sh | 42 ++++++ setup-script.sh | 71 ++++++++++ setup.sh | 67 ++++++++++ 9 files changed, 797 insertions(+) create mode 100644 .gitignore create mode 100644 .netrwhist create mode 120000 .vim create mode 100644 autoload/pathogen.vim create mode 100755 gen-setup.sh create mode 100644 init.vim create mode 100755 link-vimrc.sh create mode 100644 setup-script.sh create mode 100755 setup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0282878 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/bundle +/themes diff --git a/.netrwhist b/.netrwhist new file mode 100644 index 0000000..191eab6 --- /dev/null +++ b/.netrwhist @@ -0,0 +1,10 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhist_cnt =8 +let g:netrw_dirhist_1='/home/mitch/.vim' +let g:netrw_dirhist_2='/home/mitch/go/src/git.riedstra.us/mitch/gofuel' +let g:netrw_dirhist_3='/home/mitch/go/src/github.com/patrickjuchli/couch' +let g:netrw_dirhist_4='/home/mitch/go/src/git.riedstra.us/mitch/gofuel' +let g:netrw_dirhist_5='/home/mitch/scm/lang/python/short/config' +let g:netrw_dirhist_6='/home/mitch/scm/lang/python/short' +let g:netrw_dirhist_7='/home/mitch/go/src/github.com/gogits/gogs/modules/setting' +let g:netrw_dirhist_8='/home/mitch/.vim' diff --git a/.vim b/.vim new file mode 120000 index 0000000..8355b52 --- /dev/null +++ b/.vim @@ -0,0 +1 @@ +.vim \ No newline at end of file diff --git a/autoload/pathogen.vim b/autoload/pathogen.vim new file mode 100644 index 0000000..59a75c1 --- /dev/null +++ b/autoload/pathogen.vim @@ -0,0 +1,353 @@ +" pathogen.vim - path option manipulation +" Maintainer: Tim Pope +" Version: 2.4 + +" Install in ~/.vim/autoload (or ~\vimfiles\autoload). +" +" For management of individually installed plugins in ~/.vim/bundle (or +" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your +" .vimrc is the only other setup necessary. +" +" The API is documented inline below. + +if exists("g:loaded_pathogen") || &cp + finish +endif +let g:loaded_pathogen = 1 + +" Point of entry for basic default usage. Give a relative path to invoke +" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke +" pathogen#surround(). Curly braces are expanded with pathogen#expand(): +" "bundle/{}" finds all subdirectories inside "bundle" inside all directories +" in the runtime path. +function! pathogen#infect(...) abort + for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}'] + if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]' + call pathogen#surround(path) + elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)' + call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')') + call pathogen#surround(path . '/{}') + elseif path =~# '[{}*]' + call pathogen#interpose(path) + else + call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')') + call pathogen#interpose(path . '/{}') + endif + endfor + call pathogen#cycle_filetype() + if pathogen#is_disabled($MYVIMRC) + return 'finish' + endif + return '' +endfunction + +" Split a path into a list. +function! pathogen#split(path) abort + if type(a:path) == type([]) | return a:path | endif + if empty(a:path) | return [] | endif + let split = split(a:path,'\\\@]','\\&','') + endif +endfunction + +" Like findfile(), but hardcoded to use the runtimepath. +function! pathogen#runtime_findfile(file,count) abort + let rtp = pathogen#join(1,pathogen#split(&rtp)) + let file = findfile(a:file,rtp,a:count) + if file ==# '' + return '' + else + return fnamemodify(file,':p') + endif +endfunction + +" Section: Deprecated + +function! s:warn(msg) abort + echohl WarningMsg + echomsg a:msg + echohl NONE +endfunction + +" Prepend all subdirectories of path to the rtp, and append all 'after' +" directories in those subdirectories. Deprecated. +function! pathogen#runtime_prepend_subdirectories(path) abort + call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')') + return pathogen#surround(a:path . pathogen#slash() . '{}') +endfunction + +function! pathogen#incubate(...) abort + let name = a:0 ? a:1 : 'bundle/{}' + call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')') + return pathogen#interpose(name) +endfunction + +" Deprecated alias for pathogen#interpose(). +function! pathogen#runtime_append_all_bundles(...) abort + if a:0 + call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')') + else + call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()') + endif + return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}') +endfunction + +if exists(':Vedit') + finish +endif + +let s:vopen_warning = 0 + +function! s:find(count,cmd,file,lcd) + let rtp = pathogen#join(1,pathogen#split(&runtimepath)) + let file = pathogen#runtime_findfile(a:file,a:count) + if file ==# '' + return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'" + endif + if !s:vopen_warning + let s:vopen_warning = 1 + let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE' + else + let warning = '' + endif + if a:lcd + let path = file[0:-strlen(a:file)-2] + execute 'lcd `=path`' + return a:cmd.' '.pathogen#fnameescape(a:file) . warning + else + return a:cmd.' '.pathogen#fnameescape(file) . warning + endif +endfunction + +function! s:Findcomplete(A,L,P) + let sep = pathogen#slash() + let cheats = { + \'a': 'autoload', + \'d': 'doc', + \'f': 'ftplugin', + \'i': 'indent', + \'p': 'plugin', + \'s': 'syntax'} + if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0]) + let request = cheats[a:A[0]].a:A[1:-1] + else + let request = a:A + endif + let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*' + let found = {} + for path in pathogen#split(&runtimepath) + let path = expand(path, ':p') + let matches = split(glob(path.sep.pattern),"\n") + call map(matches,'isdirectory(v:val) ? v:val.sep : v:val') + call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]') + for match in matches + let found[match] = 1 + endfor + endfor + return sort(keys(found)) +endfunction + +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(,'edit',,0) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(,'edit',,0) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(,'edit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(,'split',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(,'vsplit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(,'tabedit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(,'pedit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(,'read',,1) + +" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=': diff --git a/gen-setup.sh b/gen-setup.sh new file mode 100755 index 0000000..00d2cf7 --- /dev/null +++ b/gen-setup.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +columate() { + _str="$1" + + _max_length=48 + _length=$( printf "%s" $_str | wc -c) + # Divide by 8, because that's the standard tabstop + _tab_num=$(echo "($_max_length-$_length)/8" | bc -l ) + _tabs="" + + # Create the tabs + for _tab in $( seq $_tab_num ) ; do + _tabs="$(printf "%s\t" $_tabs)" + done + + # "Return" the tabs + printf "%s" $_tabs +} + +REPOS="$(find . -iname .git -type d | sed -e's/\/\.git$//' -e's_./__')" + +WD="$(pwd)" + +IFS=' +' + +echo '#!/bin/sh + +WD="$(pwd)" + +clone() { + printf "\033[0mWorking dir: \033[1;34m%s\033[0;33m\n" $DIR + if [ -d "$DIR" ] ; then + cd $DIR + git pull --ff-only origin master + elif ! [ -d "$DIR" ] ; then + mkdir -p "$DIR" + cd "$DIR" + git clone "$URL" . + fi + cd $WD +}' > setup.sh + +for _repo in $REPOS; do + cd "$_repo" + # I've probably made dangerous assumptions here, but whatever. + URL="$(git remote --verbose| awk '{print $2}' | sort | uniq | head -n 1)" + cd "$WD" + + _tabs="$(columate $_repo)" + + printf 'Added: \033[1;33m%s\033[0m%sURL: \033[1;34m%s\033[0m\n' \ + $_repo $_tabs $URL + printf 'DIR="%s"\nURL="%s"\nclone\n' $_repo $URL >> setup.sh +done + + +chmod +x setup.sh diff --git a/init.vim b/init.vim new file mode 100644 index 0000000..5ec402e --- /dev/null +++ b/init.vim @@ -0,0 +1,192 @@ +execute pathogen#infect('bundle/{}', 'themes/{}') + +" My old standard theme +" colorscheme distinguished + +" My new favorite theme +colorscheme alduin + +" Love hate relationship with this thing. I guess it's back +map :NERDTreeToggle + + +" To enable/disable the autocomplete dropdown +nmap [ :AcpDisable +nmap ] :AcpEnable + +" Gundo +nnoremap :GundoToggle + +" Show me where I should end my lines +set colorcolumn=80 + +" Allow me to hide buffers w/o saving +set hidden + +" Persistent undo +set undofile +set undodir=~/.vimundo +set undolevels=1000 +set undoreload=10000 + +" lots of history, it's always nice to find old nasty command that happen +" to be really useful +set history=10000 + +" Be smart about the mouse +set mouse+=a +if &term =~ '^screen' + " tmux knows the extended mouse mode + set ttymouse=xterm2 +endif + +" Always show status line +set laststatus=2 + +" Enable the list of buffers +let g:airline#extensions#tabline#enabled = 1 + +" Show just the filename +let g:airline#extensions#tabline#fnamemod = ':t' + +" Backslash l +nmap l :set list! +" If you want listchars +set list +" set listchars=tab:\|\ +set listchars=tab:▸\ ,eol:¬,trail:• +" set listchars=tab:▸\ ,eol:¬ +" set listchars=tab:\|\ ,eol:↴ +" set listchars=tab:\|\ ,eol:$ +" set listchars=tab:\⇒\ ,eol:↴ +" Tabs show up as MARCON, aka 0xC2 0xAF +" Misc symbols for tabs: ¯ ⇒ ⇥ ⇨ ⇏ ⇸ → + +" This lets you just hit enter instead +" of pressing control-n Some people like it +" personally I'm not that much of a fan +" set completeopt=longest,menuone + +" Omni completion +filetype plugin on +set omnifunc=syntaxcomplete#Complete + +" Keep the newbs from using arrow keys +inoremap +inoremap +inoremap +inoremap + +nmap :TagbarToggle + +let g:ctrlp_follow_symlinks = 1 +let g:ctrlp_working_path_mode = 0 + +" Line numbers +set nu + +" Derp +syntax on +" syntax off + +" Case insensitive searching by default +set ic +" Highlight my searches by default +set hls + +set encoding=utf-8 " The encoding displayed. +set fileencoding=utf-8 " The encoding written to file. + +" Do not read modeline from comments +set nomodeline + +" No more swap files +set updatecount=0 + +" Vi in-compatibility +set nocompatible + + +autocmd Filetype python call SetPythonOptions() +autocmd Filetype htmldjango call SethtmldjangoOptions() +autocmd Filetype json call SetJsonOptions() +autocmd Filetype php call SetPHPOptions() +autocmd Filetype html call SetHTMLOptions() +autocmd Filetype sh call SetShellOptions() +autocmd Filetype go call SetGoOptions() +autocmd Filetype yaml call SetYamlOptions() + +function SetPythonOptions() + set tabstop=4 + set shiftwidth=4 + set expandtab + filetype indent on + set smartindent +endfunction +function SetJsonOptions() + set tabstop=3 + set shiftwidth=3 + set expandtab + filetype indent on + set smartindent +endfunction +function SethtmldjangoOptions() + set tabstop=2 + set shiftwidth=2 + set expandtab + filetype indent on + set smartindent +endfunction +function SetPHPOptions() + set colorcolumn=120 + set tabstop=4 + set shiftwidth=4 + set expandtab + filetype indent on + set smartindent +endfunction +function SetHTMLOptions() + set colorcolumn=120 + set tabstop=2 + set shiftwidth=2 + set expandtab + filetype indent on + set smartindent +endfunction +function SetShellOptions() + set tabstop=4 + set shiftwidth=4 + set noexpandtab + filetype indent on + set smartindent +endfunction +function SetGoOptions() + " colorscheme acme + " syntax off + " colorscheme 256_noir + AcpDisable + set nolist + set noic + set nolist +endfunction +function SetYamlOptions() + set listchars=tab:▸\ ,eol:¬,trail:•,space:· + " set listchars=tab:▸\ ,eol:¬,trail:• + set expandtab + set noic +endfunction + +set tabstop=4 +set shiftwidth=4 +set noexpandtab + + +function! PhpSyntaxOverride() + hi! def link phpDocTags phpDefine + hi! def link phpDocParam phpType +endfunction + +augroup phpSyntaxOverride + autocmd! + autocmd FileType php call PhpSyntaxOverride() +augroup END diff --git a/link-vimrc.sh b/link-vimrc.sh new file mode 100755 index 0000000..45e7e28 --- /dev/null +++ b/link-vimrc.sh @@ -0,0 +1,42 @@ +#!/bin/sh + + +# Create/Check Vim/Vimrc files + +IFS=' +' + +REMOVE="" + +WD="$(pwd)" +cd $HOME + +files="$HOME/.vimrc +$HOME/.nvimrc" + +directories="$HOME/.config/nvim +$HOME/.nvim" + +for _file in $files; do + if [ -L $_file ] ; then + printf "\033[1;32mOK: %s\033[0m\n" "$_file" + elif [ -f $_file ] ; then + printf "REMOVE: \033[1;31m%s\033[0m\n" "$_file" + else + printf "\033[1;33mCREATED: %s\033[0m\n" "$_file" + ln -s .vim/init.vim $_file + fi +done + +for _dir in $directories; do + if [ -L $_dir ] ; then + printf "\033[1;32mOK: %s\033[0m\n" "$_dir" + elif [ -f $_dir ] ; then + printf "REMOVE: \033[1;31m%s\033[0m\n" "$_dir" + else + printf "\033[1;33mCREATED: %s\033[0m\n" "$_dir" + ln -s .vim $_dir + fi +done + +cd "$WD" diff --git a/setup-script.sh b/setup-script.sh new file mode 100644 index 0000000..7977a15 --- /dev/null +++ b/setup-script.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +WD="$(pwd)" + +clone() { + if [ -d "$DIR" ] ; then + cd $DIR + git pull --ff-only origin master + elif ! [ -d "$DIR" ] ; then + mkdir -p "$DIR" + cd "$DIR" + git clone "$URL" . + fi + cd $WD +} + +DIR="bundle/emmet-vim" +URL="https://github.com/mattn/emmet-vim.git" +clone +DIR="bundle/vim-airline" +URL="https://github.com/vim-airline/vim-airline.git" +clone +DIR="bundle/ctrlp.vim" +URL="https://github.com/kien/ctrlp.vim.git" +clone +DIR="bundle/gundo.vim" +URL="https://github.com/sjl/gundo.vim.git" +clone +DIR="bundle/tagbar" +URL="git://github.com/majutsushi/tagbar" +clone +DIR="bundle/ag.vim" +URL="https://github.com/rking/ag.vim.git" +clone +DIR="bundle/vim-distinguished" +URL="https://github.com/Lokaltog/vim-distinguished.git" +clone +DIR="bundle/vim-go" +URL="https://github.com/fatih/vim-go.git" +clone +DIR="bundle/php.vim" +URL="https://github.com/StanAngeloff/php.vim.git" +clone +DIR="bundle/nginx-vim-syntax" +URL="https://git.riedstra.us/mitch/nginx-vim-syntax.git" +clone +DIR="bundle/vim-autocomplpop" +URL="https://git.riedstra.us/mitch/vim-autocomplpop.git" +clone +DIR="bundle/vim-l9" +URL="https://git.riedstra.us/mitch/vim-l9.git" +clone +DIR="bundle/nerdtree" +URL="https://github.com/scrooloose/nerdtree.git" +clone +DIR="themes/vim-256noir" +URL="https://git.riedstra.us/mitch/vim-256noir.git" +clone +DIR="themes/vim-colors-penultimate" +URL="https://github.com/ivan-cukic/vim-colors-penultimate" +clone +DIR="themes/alduin" +URL="https://git.riedstra.us/mitch/Alduin.git" +clone +DIR="themes/oceanic-next" +URL="https://github.com/mhartington/oceanic-next" +clone +# DIR="." +# URL="git@git.riedstra.us:mitch/vim-cfg.git" +# clone + diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..b9df3f1 --- /dev/null +++ b/setup.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +WD="$(pwd)" + +clone() { + printf "\033[0mWorking dir: \033[1;34m%s\033[0;33m\n" $DIR + if [ -d "$DIR" ] ; then + cd $DIR + git pull --ff-only origin master + elif ! [ -d "$DIR" ] ; then + mkdir -p "$DIR" + cd "$DIR" + git clone "$URL" . + fi + cd $WD +} +DIR="themes/vim-colors-penultimate" +URL="https://github.com/ivan-cukic/vim-colors-penultimate" +clone +DIR="themes/vim-256noir" +URL="https://git.riedstra.us/mitch/vim-256noir.git" +clone +DIR="themes/alduin" +URL="https://git.riedstra.us/mitch/Alduin.git" +clone +DIR="themes/oceanic-next" +URL="https://github.com/mhartington/oceanic-next" +clone +DIR="bundle/vim-airline" +URL="https://github.com/vim-airline/vim-airline.git" +clone +DIR="bundle/php.vim" +URL="https://github.com/StanAngeloff/php.vim.git" +clone +DIR="bundle/vim-l9" +URL="https://git.riedstra.us/mitch/vim-l9.git" +clone +DIR="bundle/nerdtree" +URL="https://github.com/scrooloose/nerdtree.git" +clone +DIR="bundle/vim-autocomplpop" +URL="https://git.riedstra.us/mitch/vim-autocomplpop.git" +clone +DIR="bundle/vim-go" +URL="https://github.com/fatih/vim-go.git" +clone +DIR="bundle/ag.vim" +URL="https://github.com/rking/ag.vim.git" +clone +DIR="bundle/tagbar" +URL="git://github.com/majutsushi/tagbar" +clone +DIR="bundle/nginx-vim-syntax" +URL="https://git.riedstra.us/mitch/nginx-vim-syntax.git" +clone +DIR="bundle/ctrlp.vim" +URL="https://github.com/kien/ctrlp.vim.git" +clone +DIR="bundle/gundo.vim" +URL="https://github.com/sjl/gundo.vim.git" +clone +DIR="bundle/vim-distinguished" +URL="https://github.com/Lokaltog/vim-distinguished.git" +clone +DIR="bundle/emmet-vim" +URL="https://github.com/mattn/emmet-vim.git" +clone -- cgit v1.2.3