From 6be2d3bc71602751e6203e838b3a57f77b6e20ee Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 18 Dec 2014 16:20:13 -0600 Subject: [PATCH] new more customized vimrc --- .vim/autoload/vundle.vim | 48 ---- .vim/autoload/vundle/config.vim | 109 ------- .vim/autoload/vundle/installer.vim | 278 ------------------ .vim/autoload/vundle/scripts.vim | 188 ------------ .vim/bundle/Vundle.vim | 1 + .vim/doc/vundle.txt | 248 ---------------- .vimrc | 444 ++--------------------------- xss | 1 - 8 files changed, 25 insertions(+), 1292 deletions(-) delete mode 100644 .vim/autoload/vundle.vim delete mode 100644 .vim/autoload/vundle/config.vim delete mode 100644 .vim/autoload/vundle/installer.vim delete mode 100644 .vim/autoload/vundle/scripts.vim create mode 160000 .vim/bundle/Vundle.vim delete mode 100644 .vim/doc/vundle.txt delete mode 100644 xss diff --git a/.vim/autoload/vundle.vim b/.vim/autoload/vundle.vim deleted file mode 100644 index 0bc7bf5..0000000 --- a/.vim/autoload/vundle.vim +++ /dev/null @@ -1,48 +0,0 @@ -" Vundle is a shortcut for Vim Bundle and Is a simple plugin manager for Vim -" Author: gmarik -" HomePage: http://github.com/gmarik/vundle -" Readme: http://github.com/gmarik/vundle/blob/master/README.md -" Version: 0.9 - -com! -nargs=+ Bundle -\ call vundle#config#bundle() - -com! -nargs=? -bang -complete=custom,vundle#scripts#complete BundleInstall -\ call vundle#installer#new('!' == '', ) - -com! -nargs=? -bang -complete=custom,vundle#scripts#complete BundleSearch -\ call vundle#scripts#all('!'=='', ) - -com! -nargs=? -bang -complete=custom,vundle#scripts#complete Bundles -\ call vundle#scripts#all('!'=='', ) - -com! -nargs=0 -bang BundleList -\ call vundle#installer#list('!'=='') - -com! -nargs=? -bang BundleClean -\ call vundle#installer#clean('!' == '') - -com! -nargs=0 BundleDocs -\ call vundle#installer#helptags(g:bundles) - -" Aliases -com! BundleUpdate BundleInstall! - -if (has('signs')) -sign define Vu_error text=! texthl=Error -sign define Vu_active text=> texthl=Comment -sign define Vu_todate text=. texthl=Comment -sign define Vu_new text=+ texthl=Comment -sign define Vu_updated text=* texthl=Comment -sign define Vu_deleted text=- texthl=Comment -sign define Vu_helptags text=* texthl=Comment -endif - - -func! vundle#rc(...) abort - let g:bundle_dir = len(a:000) > 0 ? expand(a:1, 1) : expand('$HOME/.vim/bundle', 1) - let g:updated_bundles = [] - let g:vundle_log = [] - let g:vundle_changelog = ['Updated Bundles:'] - call vundle#config#init() -endf diff --git a/.vim/autoload/vundle/config.vim b/.vim/autoload/vundle/config.vim deleted file mode 100644 index 5bb6e3f..0000000 --- a/.vim/autoload/vundle/config.vim +++ /dev/null @@ -1,109 +0,0 @@ -func! vundle#config#bundle(arg, ...) - let bundle = vundle#config#init_bundle(a:arg, a:000) - call s:rtp_rm_a() - call add(g:bundles, bundle) - call s:rtp_add_a() - return bundle -endf - -func! vundle#config#init() - if !exists('g:bundles') | let g:bundles = [] | endif - call s:rtp_rm_a() - let g:bundles = [] -endf - -func! vundle#config#require(bundles) abort - for b in a:bundles - call s:rtp_add(b.rtpath) - call s:rtp_add(g:bundle_dir) - " TODO: it has to be relative rtpath, not bundle.name - exec 'runtime! '.b.name.'/plugin/*.vim' - exec 'runtime! '.b.name.'/after/*.vim' - call s:rtp_rm(g:bundle_dir) - endfor -endf - -func! vundle#config#init_bundle(name, opts) - if a:name != substitute(a:name, '^\s*\(.\{-}\)\s*$', '\1', '') - echo "Spurious leading and/or trailing whitespace found in bundle spec '" . a:name . "'" - endif - let opts = extend(s:parse_options(a:opts), s:parse_name(substitute(a:name,"['".'"]\+','','g'))) - let b = extend(opts, copy(s:bundle)) - let b.rtpath = s:rtpath(opts) - return b -endf - -func! s:parse_options(opts) - " TODO: improve this - if len(a:opts) != 1 | return {} | endif - - if type(a:opts[0]) == type({}) - return a:opts[0] - else - return {'rev': a:opts[0]} - endif -endf - -func! s:parse_name(arg) - let arg = a:arg - let git_proto = exists('g:vundle_default_git_proto') ? g:vundle_default_git_proto : 'https' - - if arg =~? '^\s*\(gh\|github\):\S\+' - \ || arg =~? '^[a-z0-9][a-z0-9-]*/[^/]\+$' - let uri = git_proto.'://github.com/'.split(arg, ':')[-1] - if uri !~? '\.git$' - let uri .= '.git' - endif - let name = substitute(split(uri,'\/')[-1], '\.git\s*$','','i') - elseif arg =~? '^\s*\(git@\|git://\)\S\+' - \ || arg =~? '\(file\|https\?\)://' - \ || arg =~? '\.git\s*$' - let uri = arg - let name = split( substitute(uri,'/\?\.git\s*$','','i') ,'\/')[-1] - else - let name = arg - let uri = git_proto.'://github.com/vim-scripts/'.name.'.git' - endif - return {'name': name, 'uri': uri, 'name_spec': arg } -endf - -func! s:rtp_rm_a() - let paths = map(copy(g:bundles), 'v:val.rtpath') - let prepends = join(paths, ',') - let appends = join(paths, '/after,').'/after' - exec 'set rtp-='.fnameescape(prepends) - exec 'set rtp-='.fnameescape(appends) -endf - -func! s:rtp_add_a() - let paths = map(copy(g:bundles), 'v:val.rtpath') - let prepends = join(paths, ',') - let appends = join(paths, '/after,').'/after' - exec 'set rtp^='.fnameescape(prepends) - exec 'set rtp+='.fnameescape(appends) -endf - -func! s:rtp_rm(dir) abort - exec 'set rtp-='.fnameescape(expand(a:dir, 1)) - exec 'set rtp-='.fnameescape(expand(a:dir.'/after', 1)) -endf - -func! s:rtp_add(dir) abort - exec 'set rtp^='.fnameescape(expand(a:dir, 1)) - exec 'set rtp+='.fnameescape(expand(a:dir.'/after', 1)) -endf - -func! s:expand_path(path) abort - return simplify(expand(a:path, 1)) -endf - -func! s:rtpath(opts) - return has_key(a:opts, 'rtp') ? s:expand_path(a:opts.path().'/'.a:opts.rtp) : a:opts.path() -endf - -let s:bundle = {} - -func! s:bundle.path() - return s:expand_path(g:bundle_dir.'/'.self.name) -endf - diff --git a/.vim/autoload/vundle/installer.vim b/.vim/autoload/vundle/installer.vim deleted file mode 100644 index 02c7903..0000000 --- a/.vim/autoload/vundle/installer.vim +++ /dev/null @@ -1,278 +0,0 @@ -func! vundle#installer#new(bang, ...) abort - let bundles = (a:1 == '') ? - \ g:bundles : - \ map(copy(a:000), 'vundle#config#bundle(v:val, {})') - - let names = vundle#scripts#bundle_names(map(copy(bundles), 'v:val.name_spec')) - call vundle#scripts#view('Installer',['" Installing bundles to '.expand(g:bundle_dir, 1)], names + ['Helptags']) - - call s:process(a:bang, (a:bang ? 'add!' : 'add')) - - call vundle#config#require(bundles) -endf - - -func! s:process(bang, cmd) - let msg = '' - - redraw - sleep 1m - - let lines = (getline('.','$')[0:-2]) - - for line in lines - redraw - - exec ':norm '.a:cmd - - if 'error' == g:vundle_last_status - let msg = 'With errors; press l to view log' - endif - - if 'updated' == g:vundle_last_status && empty(msg) - let msg = 'Bundles updated; press u to view changelog' - endif - - " goto next one - exec ':+1' - - setl nomodified - endfor - - redraw - echo 'Done! '.msg -endf - -func! vundle#installer#run(func_name, name, ...) abort - let n = a:name - - echo 'Processing '.n - call s:sign('active') - - sleep 1m - - let status = call(a:func_name, a:1) - - call s:sign(status) - - redraw - - if 'new' == status - echo n.' installed' - elseif 'updated' == status - echo n.' updated' - elseif 'todate' == status - echo n.' already installed' - elseif 'deleted' == status - echo n.' deleted' - elseif 'helptags' == status - echo n.' regenerated' - elseif 'error' == status - echohl Error - echo 'Error processing '.n - echohl None - sleep 1 - else - throw 'whoops, unknown status:'.status - endif - - let g:vundle_last_status = status - - return status -endf - -func! s:sign(status) - if (!has('signs')) - return - endif - - exe ":sign place ".line('.')." line=".line('.')." name=Vu_". a:status ." buffer=" . bufnr("%") -endf - -func! vundle#installer#install_and_require(bang, name) abort - let result = vundle#installer#install(a:bang, a:name) - let b = vundle#config#bundle(a:name, {}) - call vundle#installer#helptags([b]) - call vundle#config#require([b]) - return result -endf - -func! vundle#installer#install(bang, name) abort - if !isdirectory(g:bundle_dir) | call mkdir(g:bundle_dir, 'p') | endif - - let b = vundle#config#init_bundle(a:name, {}) - - return s:sync(a:bang, b) -endf - -func! vundle#installer#docs() abort - let error_count = vundle#installer#helptags(g:bundles) - if error_count > 0 - return 'error' - endif - return 'helptags' -endf - -func! vundle#installer#helptags(bundles) abort - let bundle_dirs = map(copy(a:bundles),'v:val.rtpath') - let help_dirs = filter(bundle_dirs, 's:has_doc(v:val)') - - call s:log('') - call s:log('Helptags:') - - let statuses = map(copy(help_dirs), 's:helptags(v:val)') - let errors = filter(statuses, 'v:val == 0') - - call s:log('Helptags: '.len(help_dirs).' bundles processed') - - return len(errors) -endf - -func! vundle#installer#list(bang) abort - let bundles = vundle#scripts#bundle_names(map(copy(g:bundles), 'v:val.name_spec')) - call vundle#scripts#view('list', ['" My Bundles'], bundles) - redraw - echo len(g:bundles).' bundles configured' -endf - - -func! vundle#installer#clean(bang) abort - let bundle_dirs = map(copy(g:bundles), 'v:val.path()') - let all_dirs = (v:version > 702 || (v:version == 702 && has("patch51"))) - \ ? split(globpath(g:bundle_dir, '*', 1), "\n") - \ : split(globpath(g:bundle_dir, '*'), "\n") - let x_dirs = filter(all_dirs, '0 > index(bundle_dirs, v:val)') - - if empty(x_dirs) - let headers = ['" All clean!'] - let names = [] - else - let headers = ['" Removing bundles:'] - let names = vundle#scripts#bundle_names(map(copy(x_dirs), 'fnamemodify(v:val, ":t")')) - end - - call vundle#scripts#view('clean', headers, names) - redraw - - if (a:bang || empty(names)) - call s:process(a:bang, 'D') - else - call inputsave() - let response = input('Continue? [Y/n]: ') - call inputrestore() - if (response =~? 'y' || response == '') - call s:process(a:bang, 'D') - endif - endif -endf - - -func! vundle#installer#delete(bang, dir_name) abort - - let cmd = ((has('win32') || has('win64')) && empty(matchstr(&shell, 'sh'))) ? - \ 'rmdir /S /Q' : - \ 'rm -rf' - - let bundle = vundle#config#init_bundle(a:dir_name, {}) - let cmd .= ' '.vundle#installer#shellesc(bundle.path()) - - let out = s:system(cmd) - - call s:log('') - call s:log('Bundle '.a:dir_name) - call s:log('$ '.cmd) - call s:log('> '.out) - - if 0 != v:shell_error - return 'error' - else - return 'deleted' - endif -endf - -func! s:has_doc(rtp) abort - return isdirectory(a:rtp.'/doc') - \ && (!filereadable(a:rtp.'/doc/tags') || filewritable(a:rtp.'/doc/tags')) - \ && (v:version > 702 || (v:version == 702 && has("patch51"))) - \ ? !(empty(glob(a:rtp.'/doc/*.txt', 1)) && empty(glob(a:rtp.'/doc/*.??x', 1))) - \ : !(empty(glob(a:rtp.'/doc/*.txt')) && empty(glob(a:rtp.'/doc/*.??x'))) -endf - -func! s:helptags(rtp) abort - " it is important to keep trailing slash here - let doc_path = resolve(a:rtp).'/doc/' - call s:log(':helptags '.doc_path) - try - execute 'helptags ' . doc_path - catch - call s:log("> Error running :helptags ".doc_path) - return 0 - endtry - return 1 -endf - -func! s:sync(bang, bundle) abort - let git_dir = expand(a:bundle.path().'/.git/', 1) - if isdirectory(git_dir) || filereadable(expand(a:bundle.path().'/.git', 1)) - if !(a:bang) | return 'todate' | endif - let cmd = 'cd '.vundle#installer#shellesc(a:bundle.path()).' && git pull && git submodule update --init --recursive' - - let cmd = g:shellesc_cd(cmd) - - let get_current_sha = 'cd '.vundle#installer#shellesc(a:bundle.path()).' && git rev-parse HEAD' - let get_current_sha = g:shellesc_cd(get_current_sha) - let initial_sha = s:system(get_current_sha)[0:15] - else - let cmd = 'git clone --recursive '.vundle#installer#shellesc(a:bundle.uri).' '.vundle#installer#shellesc(a:bundle.path()) - let initial_sha = '' - endif - - let out = s:system(cmd) - call s:log('') - call s:log('Bundle '.a:bundle.name_spec) - call s:log('$ '.cmd) - call s:log('> '.out) - - if 0 != v:shell_error - return 'error' - end - - if empty(initial_sha) - return 'new' - endif - - let updated_sha = s:system(get_current_sha)[0:15] - - if initial_sha == updated_sha - return 'todate' - endif - - call add(g:updated_bundles, [initial_sha, updated_sha, a:bundle]) - return 'updated' -endf - -func! vundle#installer#shellesc(cmd) abort - if ((has('win32') || has('win64')) && empty(matchstr(&shell, 'sh'))) - return '"' . substitute(a:cmd, '"', '\\"', 'g') . '"' - endif - return shellescape(a:cmd) -endf - -func! g:shellesc_cd(cmd) abort - if ((has('win32') || has('win64')) && empty(matchstr(&shell, 'sh'))) - let cmd = substitute(a:cmd, '^cd ','cd /d ','') " add /d switch to change drives - return cmd - else - return a:cmd - endif -endf - -func! s:system(cmd) abort - return system(a:cmd) -endf - -func! s:log(str) abort - let fmt = '%y%m%d %H:%M:%S' - call add(g:vundle_log, '['.strftime(fmt).'] '.a:str) - return a:str -endf diff --git a/.vim/autoload/vundle/scripts.vim b/.vim/autoload/vundle/scripts.vim deleted file mode 100644 index 0cd4d13..0000000 --- a/.vim/autoload/vundle/scripts.vim +++ /dev/null @@ -1,188 +0,0 @@ -func! vundle#scripts#all(bang, ...) - let b:match = '' - let info = ['"Keymap: i - Install bundle; c - Cleanup; s - Search; R - Reload list'] - let matches = s:load_scripts(a:bang) - if !empty(a:1) - let matches = filter(matches, 'v:val =~? "'.escape(a:1,'"').'"') - let info += ['"Search results for: '.a:1] - " TODO: highlight matches - let b:match = a:1 - endif - call vundle#scripts#view('search',info, vundle#scripts#bundle_names(reverse(matches))) - redraw - echo len(matches).' bundles found' -endf - -func! vundle#scripts#reload() abort - silent exec ':BundleSearch! '.(exists('b:match') ? b:match : '') - redraw -endf - -func! vundle#scripts#complete(a,c,d) - return join(s:load_scripts(0),"\n") -endf - -func! s:view_log() - if !exists('g:vundle_log_file') - let g:vundle_log_file = tempname() - endif - - call writefile(g:vundle_log, g:vundle_log_file) - execute 'silent pedit ' . g:vundle_log_file - - wincmd P | wincmd H -endf - -func! s:create_changelog() abort - for bundle_data in g:updated_bundles - let initial_sha = bundle_data[0] - let updated_sha = bundle_data[1] - let bundle = bundle_data[2] - - let cmd = 'cd '.vundle#installer#shellesc(bundle.path()). - \ ' && git log --pretty=format:"%s %an, %ar" --graph '. - \ initial_sha.'..'.updated_sha - - let cmd = g:shellesc_cd(cmd) - - let updates = system(cmd) - - call add(g:vundle_changelog, '') - call add(g:vundle_changelog, 'Updated Bundle: '.bundle.name) - - if bundle.uri =~ "https://github.com" - call add(g:vundle_changelog, 'Compare at: '.bundle.uri[0:-5].'/compare/'.initial_sha.'...'.updated_sha) - endif - - for update in split(updates, '\n') - let update = substitute(update, '\s\+$', '', '') - call add(g:vundle_changelog, ' '.update) - endfor - endfor -endf - -func! s:view_changelog() - call s:create_changelog() - - if !exists('g:vundle_changelog_file') - let g:vundle_changelog_file = tempname() - endif - - call writefile(g:vundle_changelog, g:vundle_changelog_file) - execute 'silent pedit ' . g:vundle_changelog_file - - wincmd P | wincmd H -endf - -func! vundle#scripts#bundle_names(names) - return map(copy(a:names), ' printf("Bundle ' ."'%s'".'", v:val) ') -endf - -func! vundle#scripts#view(title, headers, results) - if exists('g:vundle_view') && bufloaded(g:vundle_view) - exec g:vundle_view.'bd!' - endif - - exec 'silent pedit [Vundle] '.a:title - - wincmd P | wincmd H - - let g:vundle_view = bufnr('%') - " - " make buffer modifiable - " to append without errors - set modifiable - - call append(0, a:headers + a:results) - - setl buftype=nofile - setl noswapfile - - setl cursorline - setl nonu ro noma ignorecase - if (exists('&relativenumber')) | setl norelativenumber | endif - - setl ft=vundle - setl syntax=vim - syn keyword vimCommand Bundle - syn keyword vimCommand Helptags - - com! -buffer -bang -nargs=1 DeleteBundle - \ call vundle#installer#run('vundle#installer#delete', split(,',')[0], ['!' == '', ]) - - com! -buffer -bang -nargs=? InstallAndRequireBundle - \ call vundle#installer#run('vundle#installer#install_and_require', split(,',')[0], ['!' == '', ]) - - com! -buffer -bang -nargs=? InstallBundle - \ call vundle#installer#run('vundle#installer#install', split(,',')[0], ['!' == '', ]) - - com! -buffer -bang -nargs=0 InstallHelptags - \ call vundle#installer#run('vundle#installer#docs', 'helptags', []) - - com! -buffer -nargs=0 VundleLog call s:view_log() - - com! -buffer -nargs=0 VundleChangelog call s:view_changelog() - - nnoremap q :silent bd! - nnoremap D :exec 'Delete'.getline('.') - - nnoremap add :exec 'Install'.getline('.') - nnoremap add! :exec 'Install'.substitute(getline('.'), '^Bundle ', 'Bundle! ', '') - - nnoremap i :exec 'InstallAndRequire'.getline('.') - nnoremap I :exec 'InstallAndRequire'.substitute(getline('.'), '^Bundle ', 'Bundle! ', '') - - nnoremap l :VundleLog - nnoremap u :VundleChangelog - nnoremap h :h vundle - nnoremap ? :norm h - - nnoremap c :BundleClean - nnoremap C :BundleClean! - - nnoremap s :BundleSearch - nnoremap R :call vundle#scripts#reload() - - " goto first line after headers - exec ':'.(len(a:headers) + 1) -endf - -func! s:fetch_scripts(to) - let scripts_dir = fnamemodify(expand(a:to, 1), ":h") - if !isdirectory(scripts_dir) - call mkdir(scripts_dir, "p") - endif - - let l:vim_scripts_json = 'http://vim-scripts.org/api/scripts.json' - if executable("curl") - let cmd = 'curl --fail -s -o '.vundle#installer#shellesc(a:to).' '.l:vim_scripts_json - elseif executable("wget") - let temp = vundle#installer#shellesc(tempname()) - let cmd = 'wget -q -O '.temp.' '.l:vim_scripts_json. ' && mv -f '.temp.' '.vundle#installer#shellesc(a:to) - if (has('win32') || has('win64')) - let cmd = substitute(cmd, 'mv -f ', 'move /Y ', '') " change force flag - let cmd = vundle#installer#shellesc(cmd) - end - else - echoerr 'Error curl or wget is not available!' - return 1 - endif - - call system(cmd) - - if (0 != v:shell_error) - echoerr 'Error fetching scripts!' - return v:shell_error - endif - return 0 -endf - -func! s:load_scripts(bang) - let f = expand(g:bundle_dir.'/.vundle/script-names.vim-scripts.org.json', 1) - if a:bang || !filereadable(f) - if 0 != s:fetch_scripts(f) - return [] - end - endif - return eval(readfile(f, 'b')[0]) -endf diff --git a/.vim/bundle/Vundle.vim b/.vim/bundle/Vundle.vim new file mode 160000 index 0000000..0b28e33 --- /dev/null +++ b/.vim/bundle/Vundle.vim @@ -0,0 +1 @@ +Subproject commit 0b28e334e65b6628b0a61c412fcb45204a2f2bab diff --git a/.vim/doc/vundle.txt b/.vim/doc/vundle.txt deleted file mode 100644 index d17c94e..0000000 --- a/.vim/doc/vundle.txt +++ /dev/null @@ -1,248 +0,0 @@ -*vundle.txt* Vundle, a plug-in manager for Vim. *vundle* - - VUNDLE MANUAL - -Vundle is short for Vim bundle and is a Vim plug-in manager. - -1. Why Vundle |vundle-why-vundle| -2. Quick start |vundle-quickstart| -3. Scripts |vundle-scripts| - 3.1. Configure scripts |vundle-scripts-configure| - 3.2. Installing scripts |vundle-scripts-install| - 3.3. Updating scripts |vundle-scripts-update| - 3.4. Searching scripts |vundle-scripts-search| - 3.5. Listing scripts |vundle-scripts-list| - 3.6. Cleanup |vundle-scripts-cleanup| -4. Interactive mode |vundle-interactive| -5. Key mappings |vundle-keymappings| -6. Options |vundle-options| - -============================================================================= -1. WHY VUNDLE ~ - *vundle-why-vundle* -Vundle allows you to: - -- keep track and configure your scripts right in `.vimrc` -- install configured scripts (aka bundle) -- update configured scripts -- search [all available vim scripts] by name -- clean up from unused scripts - -Also Vundle: - -- manages runtime path of your installed scripts -- regenerates helptags automatically - -Vundle takes advantage of [vim-scripts.org](http://vim-scripts.org) -in order to install/search [all available vim scripts] - -============================================================================= -2. QUICK START ~ - *vundle-quickstart* -1) Setup Vundle: > - - git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle - -2) Configure bundles: - - Sample `.vimrc`: > - - set nocompatible " be iMproved - filetype off " required! - - set rtp+=~/.vim/bundle/vundle/ - call vundle#rc() - - " let Vundle manage Vundle - Bundle 'gmarik/vundle' - - " My Bundles here: - " - " original repos on github - Bundle 'tpope/vim-fugitive' - Bundle 'Lokaltog/vim-easymotion' - Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} - " vim-scripts repos - Bundle 'L9' - Bundle 'FuzzyFinder' - Bundle 'rails.vim' - " non github repos - Bundle 'git://git.wincent.com/command-t.git' - " git repos on your local machine (ie. when working on your own plugin) - Bundle 'file:///Users/gmarik/path/to/plugin' - " ... - - filetype plugin indent on " required! - " or - " filetype plugin on " to not use the indentation settings set - " by plugins - -3) Install configured bundles: - - Launch `vim`, run > - - :BundleInstall - -Installing requires [Git] and triggers -[Git clone](http://gitref.org/creating/#clone) for each configured repo to -`~/.vim/bundle/`. - -============================================================================= -3. SCRIPTS ~ - *vundle-scripts* -3.1 CONFIGURE SCRIPTS ~ - *vundle-scripts-configure* *Bundle* -Before installing scripts they need to be configured. It's done using `Bundle` -command in `.vimrc`: > - - Bundle 'git_repo_uri' " 'git_repo_uri' should be a valid uri to git - " repository -or > - - Bundle 'script_name' " 'script-name' should be an official script - " name (see |vundle-scripts-search|) - -Vundle loves Github, that's why short URIs can be used with commands: > - - Bundle 'tpope/vim-fugitive' - -equals full uri > - - Bundle 'http://github.com/tpope/vim-fugitive.git' - -Note that Vundle defaults to http:// protocol for the short URIs. - -There can also be a second argument after URI. It has to be a dictionary with -a key called 'rtp'. The value for that key is a directory inside the -repository (relative path from the root of the repository) where the vim -plugin resides. For example: > - - Bundle 'any_valid_uri', {'rtp': 'some/subdir/'} - -This can be used with git repositories that put the vim plugin inside a -subdirectory. - -3.2 INSTALL SCRIPTS ~ - *vundle-scripts-install* *BundleInstall* -run > - :BundleInstall - -installs configured scripts. Newly installed scripts will be automatically -enabled. Except special cases requiring compilation or pre-configuration. - -BundleInstall allows to install scripts by name:> - - :BundleInstall unite.vim - -installs and activates unite.vim. You can use Tab to auto-complete known -script names. Note that the installation just described isn't permanent. To -finish, you must put `Bundle 'unite.vim` at the appropriate line in your -`.vimrc` to tell Vundle to load the plugin at startup. - -3.3 UPDATE SCRIPTS ~ - *vundle-scripts-update* *BundleInstall!* -run > - :BundleInstall! " NOTE: bang(!) - -installs or updates configured scripts. -press u after updates complete to see the changelog of all updated bundles. - -3.4 SEARCHING ~ - *vundle-scripts-search* *BundleSearch* -run > - :BundleSearch foo - -lists bundles matching 'foo' in new a new split window, ie: -> - Bundle 'VimFootnotes' - Bundle 'foo.vim' -> -and > - - :BundleSearch! foo - -refreshes script list before performing actual search. - -If command is run without argument: > - - :BundleSearch! - -it will display all known scripts - -Searching requires [`curl`](http://curl.haxx.se/) - -3.5 LISTING BUNDLES ~ - *vundle-scripts-list* *BundleList* - -To quickly pull list of installed bundles use > - - :BundleList - - -3.6 CLEANING UP ~ - *vundle-scripts-cleanup* *BundleClean* -run > - - :BundleClean - -confirms removal of unused script-dirs from `.vim/bundle/`. - - *BundleClean!* -> - :BundleClean! - -removes unused dirs with no questions. - - -============================================================================= -4. INTERACTIVE MODE ~ - *vundle-interactive* -Vundle provides a simple interactive mode to help you explore new scripts -easily. Interactive mode is available as result of any commands that displays -a list of bundles. For instance, running: > - - :BundleSearch! unite - -triggers search for scripts matching 'unite' and yields a split window with -content: > - - "Keymap: i - Install bundle; c - Cleanup; r - Refine list; R - Reload list - "Search results for: unite - Bundle 'unite.vim' - Bundle 'unite-yarm' - Bundle 'unite-gem' - Bundle 'unite-locate' - Bundle 'unite-font' - Bundle 'unite-colorscheme' - -As the first line (starting with `"Keymap:`) shows, certain actions may be -applied to selected bundles. Move the cursor over the line `Bundle -'unite.vim'` and press i key (install, see |vundle-keymappings| for more -details). After unite.vim is installed - `:Unite file` command should be -available to prove 'unite.vim' availability. - -Note that the interactive installation doesn't update your .vimrc -configuration. - -============================================================================= -5. KEY MAPPINGS ~ - *vundle-keymappings* -KEY | DESCRIPTION -----|-------------------------- > - i | run :BundleInstall with name taken from line cursor is positioned on - I | same as i, but runs :BundleInstall! to update bundle - D | delete selected bundle( be careful not to remove local modifications) - c | run :BundleClean - s | run :BundleSearch - R | fetch fresh script list from server -. - -============================================================================= -6. OPTIONS ~ - *vundle-options* - let g:vundle_default_git_proto = 'git' - -makes Vundle use `git` instead default `https` when building absolute repo URIs - - -vim:tw=78:ts=8:ft=help:norl: diff --git a/.vimrc b/.vimrc index fb487b2..e25cc93 100644 --- a/.vimrc +++ b/.vimrc @@ -1,458 +1,72 @@ -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Sections: -" -> General -" -> Plugins -" -> VIM user interface -" -> Colors and Fonts -" -> Files and backups -" -> Text, tab and indent related -" -> Visual mode related -" -> Moving around, tabs and buffers -" -> Status line -" -> Editing mappings -" -> vimgrep searching and cope displaying -" -> Spell checking -" -> Misc -" -> Helper functions -" -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => General -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Sets how many lines of history VIM has to remember +if filereadable($HOME . "/.vimrc_vundle") + source $HOME/.vimrc_vundle +endif set history=700 -" Enable filetype plugins filetype plugin on filetype indent on -" Set to auto read when a file is changed from the outside +nnoremap +let mapleader="\" +let g:mapleader="\" + set autoread set nocompatible -"Allow fancy symbols for powerline -let g:airline_powerline_fonts=1 -let g:airline#extensions#tabline#enabled=1 -let g:fuf_keyOpenTabpage='' -let g:SuperTabContextDefaultCompletionType="" - -" Set up Vundle -filetype off - -set cino+=L0 - -set rtp+=~/.vim/bundle/vundle/ -call vundle#rc() - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Plugins -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -"Managed bundles go here: -Bundle 'gmarik/vundle' -Bundle 'L9' -Bundle 'FuzzyFinder' -Bundle 'bling/vim-airline' -Bundle 'ervandew/supertab' -Bundle 'MarcWeber/vim-addon-mw-utils' -Bundle 'tomtom/tlib_vim' -Bundle 'SirVer/ultisnips' -Bundle 'honza/vim-snippets' -Bundle 'Valloric/YouCompleteMe' -Bundle 'tpope/vim-surround' -Bundle 'aperezdc/vim-template' -Bundle 'jaxbot/semantic-highlight.vim' -Bundle 'airblade/vim-gitgutter' - -filetype plugin indent on - -" End Vundle Setup - -" Fast saving -nmap w :w! -nmap f :FufFile -nmap b :FufBuffer - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => VIM user interface -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Set 7 lines to the cursor - when moving vertically using j/k -set so=7 - -" Turn on the WiLd menu -set wildmenu - -" Ignore compiled files -set wildignore=*.o,*~,*.pyc - -"Always show current position -set ruler - -" Height of the command bar -set cmdheight=2 - -" A buffer becomes hidden when it is abandoned -set hid - -" Configure backspace so it acts as it should act set backspace=eol,start,indent set whichwrap+=<,>,h,l -" Ignore case when searching set ignorecase - -" When searching try to be smart about cases set smartcase - -" Highlight search results set hlsearch - -" Makes search act like search in modern browsers set incsearch - -" Don't redraw while executing macros (good performance config) -"set lazyredraw "Breaks :ls and :marks in current version - -" For regular expressions turn magic on +set lazyredraw set magic - -" Show matching brackets when text indicator is over them set showmatch -" How many tenths of a second to blink when matching brackets set mat=2 -" No annoying sound on errors set noerrorbells set novisualbell set t_vb= set tm=500 - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Colors and Fonts -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Enable syntax highlighting syntax enable - set nocp -filetype plugin on - set nu -let g:NERDTreeMapOpenInTab='' -let g:NERDTreeDirArrows=0 -let g:rehash256=1 -let &t_Co=256 -let &t_AF="\e[38;5;%dm" -let &t_AB="\e[48;5;%dm" -"clang_complete variables -let g:clang_library_path='/usr/lib/llvm-3.2/lib/' -let g:clang_auto_select=1 -let g:clang_hl_errors=1 -let g:clang_auto_select=1 -let g:clang_complete_macros=1 -let g:clang_periodic_quickfix=1 -let g:clang_close_preview=1 - -set nowrap - -" build tags of your own project with CTRL+F12 -" "map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . -noremap :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . -inoremap :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . -noremap :make -inoremap :make - -colorscheme monokai - -" Set extra options when running in GUI mode -if has("gui_running") - set guioptions-=T - set guioptions+=e - set t_Co=256 - set guitablabel=%M\ %t -endif - -" Set utf8 as standard encoding and en_US as the standard language set encoding=utf8 -" Use Unix as the standard file type set ffs=unix,dos,mac - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Files, backups and undo -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Turn backup off, since most stuff is in SVN, git et.c anyway... set nobackup set nowb set noswapfile - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Text, tab and indent related -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Use spaces instead of tabs +" Tab settings set expandtab - -" Be smart when using tabs ;) set smarttab - -" 1 tab == 4 spaces set shiftwidth=4 set tabstop=4 -" Linebreak on 500 characters set lbr -set tw=500 +set tw=100 -set ai "Auto indent -set si "Smart indent -"set wrap "Wrap lines +set autoindent +set smartindent set path=$PWD/** - -"""""""""""""""""""""""""""""" -" => Visual mode related -"""""""""""""""""""""""""""""" -" Visual mode pressing * or # searches for the current selection -" Super useful! From an idea by Michael Naumann -vnoremap * :call VisualSelection('f') -vnoremap # :call VisualSelection('b') - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Moving around, tabs, windows and buffers -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Treat long lines as break lines (useful when moving around in them) map j gj map k gk -" Map to / (search) and Ctrl- to ? (backwards search) -map / -map ? - -" Disable highlight when is pressed map :noh - -" Smart way to move between windows -map j -map k -map h -map l - -" Close the current buffer -map bd :Bclose - -" Close all the buffers map ba :1,1000 bd! -" Useful mappings for managing tabs -map tn :tabnew -map to :tabonly -map tc :tabclose -map tm :tabmove - -" Opens a new tab with the current buffer's path -" Super useful when editing files in the same directory -map te :tabedit =expand("%:p:h")/ - -" Switch CWD to the directory of the open buffer -map cd :cd %:p:h:pwd - -" Specify the behavior when switching between buffers -try - set switchbuf=useopen,usetab,newtab - set stal=2 -catch -endtry - -" Return to last edit position when opening files (You want this!) +"Return to last position when re-opening file autocmd BufReadPost * - \ if line("'\"") > 0 && line("'\"") <= line("$") | - \ exe "normal! g`\"" | - \ endif -" Remember info about open buffers on close + \ if line("'\"") > 0 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif set viminfo^=% - -"""""""""""""""""""""""""""""" -" => Status line -"""""""""""""""""""""""""""""" -" Always show the status line -set laststatus=2 - -" Format the status line -set statusline=\ %{HasPaste()}%F%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l/%L\ [%P]\ M%m\ %{fugitive#statusline()}%=%-5y\ %-5{&ff} - -set cpoptions+=$ -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Editing mappings -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Remap VIM 0 to first non-blank character -map 0 ^ - -" Move a line of text using ALT+[jk] or Comamnd+[jk] on mac -nmap mz:m+`z -nmap mz:m-2`z -vmap :m'>+`mzgv`yo`z -vmap :m'<-2`>my` - nmap - vmap - vmap -endif - -" Delete trailing white space on save, useful for Python and CoffeeScript ;) -func! DeleteTrailingWS() - exe "normal mz" - %s/\s\+$//ge - exe "normal `z" -endfunc -autocmd BufWrite *.py :call DeleteTrailingWS() -autocmd BufWrite *.coffee :call DeleteTrailingWS() - -set splitbelow -set splitright - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => vimgrep searching and cope displaying -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" When you press gv you vimgrep after the selected text -vnoremap gv :call VisualSelection('gv') - -" Open vimgrep and put the cursor in the right position -map g :vimgrep // **/*. - -" Vimgreps in the current file -map :vimgrep // % - -" When you press r you can search and replace the selected text -vnoremap r :call VisualSelection('replace') - -" Do :help cope if you are unsure what cope is. It's super useful! -" -" When you search with vimgrep, display your results in cope by doing: -" cc -" -" To go to the next search result do: -" n -" -" To go to the previous search results do: -" p -" -map cc :botright cope -map co ggVGy:tabnew:set syntax=qfpgg -map n :cn -map p :cp - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Spell checking -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Pressing ,ss will toggle and untoggle spell checking -map ss :setlocal spell! - -" Shortcuts using -map sn ]s -map sp [s -map sa zg -map s? z= - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Misc -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Remove the Windows ^M - when the encodings gets messed up -noremap m mmHmt:%s///ge'tzt'm - -" Quickly open a buffer for scripbble -map q :e ~/buffer - -" Toggle paste mode on and off -map pp :setlocal paste! - -"disable arrow keys -nnoremap :echoe "USE H" -nnoremap :echoe "USE L" -nnoremap :echoe "USE K" -nnoremap :echoe "USE J" - -"custom command to upload file to pi -command Uploadpi execute "!ssh pi@169.254.100.100 sudo killall mat ; scp mat pi@169.254.100.100:~ ; ssh pi@169.254.100.100 'sudo /home/pi/mat -D'" -map u :Uploadpi - -map j :tnext -map ; :tprevious - -map gg :GitGutterToggle -map gh :GitGutterLineHighlightsToggle - -let g:gitgutter_enabled=1 -let g:gitgutter_realtime=1 -let g:gitgutter_sign_added = '++' -let g:gitgutter_sign_modified = '}{' -let g:gitgutter_sign_removed = '--' -highlight clear SignColumn -highlight GitGutterAdd guibg=green -highlight GitGutterChange guibg=yellow -highlight GitGutterDelete guibg=red -highlight GitGutterChangeDelete guibg=yellow -"stops youcompleteme from breaking gitgutter -let g:ycm_enable_diagnostic_signs = 0 - - -" With a map leader it's possible to do extra key combinations -" like w saves the current file -nnoremap -let mapleader = "\" -let g:mapleader = "\" -let g:email = "adam@scanalyticsinc.com" -let g:username = "Adam Lamers" - -let g:UltiSnipsExpandTrigger="" -let g:UltiSnipsJumpForwardTrigger="" -let g:UltiSnipsJumpBackwardTrigger="" - -nnoremap c :split ~/.vim/cheatsheet.txt - -:nnoremap s :SemanticHighlightToggle - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Helper functions -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -function! CmdLine(str) - exe "menu Foo.Bar :" . a:str - emenu Foo.Bar - unmenu Foo -endfunction - -function! VisualSelection(direction) range - let l:saved_reg = @" - execute "normal! vgvy" - - let l:pattern = escape(@", '\\/.*$^~[]') - let l:pattern = substitute(l:pattern, "\n$", "", "") - - if a:direction == 'b' - execute "normal ?" . l:pattern . "^M" - elseif a:direction == 'gv' - call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') - elseif a:direction == 'replace' - call CmdLine("%s" . '/'. l:pattern . '/') - elseif a:direction == 'f' - execute "normal /" . l:pattern . "^M" - endif - - let @/ = l:pattern - let @" = l:saved_reg -endfunction - -" Returns true if paste mode is enabled function! HasPaste() if &paste return 'PASTE MODE ' @@ -460,23 +74,13 @@ function! HasPaste() return '' endfunction -" Don't close window, when deleting a buffer -command! Bclose call BufcloseCloseIt() -function! BufcloseCloseIt() - let l:currentBufNum = bufnr("%") - let l:alternateBufNum = bufnr("#") +set laststatus=2 +set statusline=\ %{HasPaste()}%F%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l/%L\ [%P]\ M%m\ %=%-5y\ %-5{&ff} - if buflisted(l:alternateBufNum) - buffer # - else - bnext - endif +let g:rehash256=1 +let &t_Co=256 +let &t_AF="\e[38;5;%dm" +let &t_AB="\e[48;5;%dm" +colorscheme monokai - if bufnr("%") == l:currentBufNum - new - endif - - if buflisted(l:currentBufNum) - execute("bdelete! ".l:currentBufNum) - endif -endfunction +"Add additional stuff here diff --git a/xss b/xss deleted file mode 100644 index 9e66e13..0000000 --- a/xss +++ /dev/null @@ -1 +0,0 @@ -alert('test');