vimjar 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. data/.gitignore +8 -0
  2. data/.rspec +2 -0
  3. data/.rvmrc +1 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +85 -0
  7. data/Guardfile +21 -0
  8. data/LICENSE +21 -0
  9. data/README.md +89 -0
  10. data/Rakefile +2 -0
  11. data/bin/vimjar +10 -0
  12. data/cucumber.yml +6 -0
  13. data/features/init.feature +37 -0
  14. data/features/install.feature +8 -0
  15. data/features/list.feature +7 -0
  16. data/features/step_definitions/command_steps.rb +21 -0
  17. data/features/step_definitions/environment_steps.rb +34 -0
  18. data/features/step_definitions/file_check_steps.rb +20 -0
  19. data/features/step_definitions/message_steps.rb +23 -0
  20. data/features/step_definitions/plugin_steps.rb +4 -0
  21. data/features/support/env.rb +22 -0
  22. data/features/support/hook.rb +8 -0
  23. data/features/support/stubs.rb +0 -0
  24. data/features/uninstall.feature +12 -0
  25. data/features/update.feature +7 -0
  26. data/lib/templates/BundleFile +1 -0
  27. data/lib/vim-jar/cli.rb +91 -0
  28. data/lib/vim-jar/config.rb +126 -0
  29. data/lib/vim-jar/installer/base.rb +9 -0
  30. data/lib/vim-jar/installer/git.rb +66 -0
  31. data/lib/vim-jar/installer.rb +7 -0
  32. data/lib/vim-jar/loader.rb +32 -0
  33. data/lib/vim-jar/pathogen/pathogen_v1.2.vim +139 -0
  34. data/lib/vim-jar/plugin/git.rb +41 -0
  35. data/lib/vim-jar/plugin.rb +23 -0
  36. data/lib/vim-jar/version.rb +5 -0
  37. data/lib/vim-jar.rb +24 -0
  38. data/script/github_crawler.rb +76 -0
  39. data/spec/spec_helper.rb +24 -0
  40. data/spec/vim-jar/config_spec.rb +126 -0
  41. data/spec/vim-jar/git-config +16 -0
  42. data/spec/vim-jar/gitmodules +6 -0
  43. data/spec/vim-jar/installer/git_spec.rb +51 -0
  44. data/spec/vim-jar/loader_spec.rb +43 -0
  45. data/spec/vim-jar/plugin/git-config +1 -0
  46. data/spec/vim-jar/plugin/git_spec.rb +41 -0
  47. data/spec/vim-jar/plugin/gitmodules +1 -0
  48. data/spec/vim-jar/plugin_spec.rb +11 -0
  49. data/spec/vim-jar_test.rb +17 -0
  50. data/vimjar.gemspec +33 -0
  51. metadata +302 -0
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ *.sw*
5
+ FILES.txt
6
+ .idea
7
+ /tmp/
8
+ /bundle
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.3@vim-jar --create
data/.travis.yml ADDED
@@ -0,0 +1,11 @@
1
+ rvm:
2
+ - 1.9.3
3
+ # whitelist
4
+ branches:
5
+ only:
6
+ - master
7
+
8
+ notifications:
9
+ email:
10
+ - digruby@gmail.com
11
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in vim-jar.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,85 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ vimjar (0.3.0)
5
+ thor
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ aruba (0.4.11)
11
+ childprocess (>= 0.2.3)
12
+ cucumber (>= 1.1.1)
13
+ ffi (>= 1.0.11)
14
+ rspec (>= 2.7.0)
15
+ builder (3.0.0)
16
+ childprocess (0.3.4)
17
+ ffi (~> 1.0, >= 1.0.6)
18
+ columnize (0.3.6)
19
+ cucumber (1.2.1)
20
+ builder (>= 2.1.2)
21
+ diff-lcs (>= 1.1.3)
22
+ gherkin (~> 2.11.0)
23
+ json (>= 1.4.6)
24
+ debugger (1.2.0)
25
+ columnize (>= 0.3.1)
26
+ debugger-linecache (~> 1.1.1)
27
+ debugger-ruby_core_source (~> 1.1.3)
28
+ debugger-linecache (1.1.2)
29
+ debugger-ruby_core_source (>= 1.1.1)
30
+ debugger-ruby_core_source (1.1.3)
31
+ diff-lcs (1.1.3)
32
+ ffi (1.1.0)
33
+ fuubar (1.0.0)
34
+ rspec (~> 2.0)
35
+ rspec-instafail (~> 0.2.0)
36
+ ruby-progressbar (~> 0.0.10)
37
+ gherkin (2.11.1)
38
+ json (>= 1.4.6)
39
+ growl (1.0.3)
40
+ guard (1.2.3)
41
+ listen (>= 0.4.2)
42
+ thor (>= 0.14.6)
43
+ guard-cucumber (1.2.0)
44
+ cucumber (>= 1.2.0)
45
+ guard (>= 1.1.0)
46
+ guard-rspec (1.2.0)
47
+ guard (>= 1.1)
48
+ json (1.7.3)
49
+ listen (0.4.7)
50
+ rb-fchange (~> 0.0.5)
51
+ rb-fsevent (~> 0.9.1)
52
+ rb-inotify (~> 0.8.8)
53
+ rake (0.9.2.2)
54
+ rb-fchange (0.0.5)
55
+ ffi
56
+ rb-fsevent (0.9.1)
57
+ rb-inotify (0.8.8)
58
+ ffi (>= 0.5.0)
59
+ rspec (2.11.0)
60
+ rspec-core (~> 2.11.0)
61
+ rspec-expectations (~> 2.11.0)
62
+ rspec-mocks (~> 2.11.0)
63
+ rspec-core (2.11.1)
64
+ rspec-expectations (2.11.1)
65
+ diff-lcs (~> 1.1.3)
66
+ rspec-instafail (0.2.4)
67
+ rspec-mocks (2.11.1)
68
+ ruby-progressbar (0.0.10)
69
+ thor (0.15.4)
70
+
71
+ PLATFORMS
72
+ ruby
73
+
74
+ DEPENDENCIES
75
+ aruba
76
+ cucumber
77
+ debugger
78
+ fuubar
79
+ growl
80
+ guard-cucumber (~> 1.2.0)
81
+ guard-rspec (~> 1.2.0)
82
+ rake
83
+ rb-fsevent
84
+ rspec
85
+ vimjar!
data/Guardfile ADDED
@@ -0,0 +1,21 @@
1
+ # A sample Guardfile
2
+ # More info at http://github.com/guard/guard#readme
3
+
4
+ notification :growl
5
+
6
+ guard 'rspec', :version => 2, :all_on_start => false, :all_after_pass => false, :cli => "--color --format nested", :bundler => true do
7
+ watch(%r{^spec/.*_spec\.rb$})
8
+ watch(%r{^lib/(.*)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
9
+ watch(%r{^controllers/(.+)\.rb$}) { |m| "spec/integration/#{m[1]}_spec.rb" }
10
+ watch(%r{^models/(.+)\.rb$}) { |m| "spec/models/#{m[1]}_spec.rb" }
11
+ watch(%r{^spec/factories.rb$}) { |m| "spec/factories_spec.rb" }
12
+ watch(%r{^spec/factories/*.rb$}) { |m| "spec/factories_spec.rb" }
13
+ watch('spec/spec_helper.rb') { "spec" }
14
+ end
15
+
16
+
17
+ guard 'cucumber', :all_on_start => false, :notification => false do
18
+ watch(%r{features/.+\.feature})
19
+ #watch(%r{features/support/.+}) { 'features' }
20
+ #watch(%r{features/step_definitions/(.+)_steps\.rb}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
21
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2012 Allen Wei
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
data/README.md ADDED
@@ -0,0 +1,89 @@
1
+ [![Build Status](https://secure.travis-ci.org/allenwei/vimjar.png)](http://travis-ci.org/allenwei/vimjar)
2
+
3
+ Features
4
+ =============
5
+
6
+ * Provide a easy way to manage your plugin use vim plugin pathogen.
7
+ * Leverage git submodule, so you can keep your plugin up to date.
8
+ * Github submodule will make your dotfiles backup easy and fast.
9
+
10
+ Get more detail reading my blog post: [use git submodule keep your plugin up to date](http://www.allenwei.cn/tips-using-git-submodule-keep-your-plugin-up-to-date)
11
+
12
+ Installation
13
+ -----------
14
+
15
+ `gem install vimjar`
16
+
17
+ Usage
18
+ -----
19
+
20
+ ### Init your environment
21
+
22
+ `vimjar init`
23
+
24
+ It will check your whether your .vim path is git repo and install pathogen
25
+
26
+ ### Open BundleFile in Editor
27
+
28
+ `vimjar edit`
29
+
30
+
31
+ ### Install plugins by modify .vim/BundleFile
32
+
33
+ plugin "git://github.com/tpope/vim-fugitive.git"
34
+ plugin "git://github.com/tpope/vim-rails.git"
35
+
36
+ ### Install plugins
37
+
38
+ `vimjar install` or just `vimjar`
39
+
40
+
41
+ ### Update all plugins
42
+
43
+ `vimjar update`
44
+
45
+ ### List installed plugin
46
+
47
+ `vimjar installed`
48
+
49
+ ### Uninstall plugin
50
+
51
+ `vimjar uninstall PLUGIN_NAME`
52
+
53
+ ### Get help
54
+
55
+ `vimjar -h`
56
+
57
+ Roadmap
58
+ =============
59
+
60
+ * Update installed plugins
61
+ * Install from vim.org, autodetect vga, compressed plugin and folds.
62
+ * Install theme
63
+ * Preivew theme screeshot
64
+ * Everyone contribute plugin source
65
+ * Rank popular plugins
66
+ * Category plugins
67
+
68
+ Troubleshooting
69
+ =============
70
+ * Git submodule error - I suggest re-install these plugins
71
+ Like these
72
+
73
+ `Unable to checkout 'e53a8582a4b1fcb664779bf598de9830cc8d4613' in submodule path 'bundle/vim-ruby'
74
+ error: More than one value for the key submodule.bundle/rails.url: git://github.com/ujihisa/quickrun.git
75
+ `
76
+
77
+ ## Note on Patches/Pull Requests
78
+
79
+ * Fork the project.
80
+ * Make your feature addition or bug fix.
81
+ * Add tests for it. This is important so I don't break it in a
82
+ future version unintentionally. Note: the existing tests may fail
83
+ * Commit, do not mess with Rakefile, gemspec or History.
84
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
85
+ * Send me a pull request. Bonus points for topic branches.
86
+
87
+ ## Copyright
88
+
89
+ Copyright (c) 2012 Allen Wei. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/bin/vimjar ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if ENV['VIM_JAR_TEST']
4
+ $:.unshift File.expand_path("./../lib", File.dirname(__FILE__)) #TODO remove me before release
5
+ require 'rubygems'
6
+ end
7
+
8
+ require 'vim-jar/cli'
9
+
10
+ Vim::Jar::Cli.start
data/cucumber.yml ADDED
@@ -0,0 +1,6 @@
1
+ default: --format progress features
2
+ html_report: --format progress --format html --out=features_report.html features
3
+ wip: --tags @wip:1 --wip
4
+ autotest: --color --format progress
5
+ autotest-all: --color --format progress
6
+
@@ -0,0 +1,37 @@
1
+ Feature: Init environment
2
+
3
+ Scenario: There is no .vim folder
4
+ Given There is not .vim folder in user home.
5
+ When I run command "init"
6
+ Then I should get there is no .vim folder error
7
+
8
+ Scenario: There is no .vimrc
9
+ Given There is not .vimrc file in .vim
10
+ When I run command "init"
11
+ Then I should get there is no .vimrc file error
12
+
13
+ Scenario: .vim folder is not a git repo
14
+ Given .vim and .vimrc
15
+ Given .vim is not git repo
16
+ When I run command "init"
17
+ Then I should get .vim is not a git repo warning
18
+
19
+ Scenario: .vim folder is not a git repo
20
+ Given .vim and .vimrc
21
+ Given .vim is not git repo
22
+ When I run command "init"
23
+ Then I should get .vim is not a git repo warning
24
+
25
+ Scenario: there is not pathogen.vim in .vim/autoload
26
+ Given .vim and .vimrc
27
+ And .vim is git repo
28
+ When I run command "init"
29
+ Then I should get install pathogen notice
30
+ And It should install pathogen for me
31
+
32
+ Scenario: init BundleFile
33
+ Given .vim and .vimrc
34
+ And .vim is git repo
35
+ When I run command "init"
36
+ Then I should have initial BundleFile
37
+ And It should get get BundleFile notice
@@ -0,0 +1,8 @@
1
+ Feature: Install
2
+ Background:
3
+ Given .vim and .vimrc
4
+
5
+ Scenario: there is not pathogen.vim in .vim/autoload
6
+ When I successfully run command "init"
7
+ When I run command "install"
8
+ Then I should see "vim-fugitive" in installed list
@@ -0,0 +1,7 @@
1
+ Feature: Listing
2
+
3
+ Scenario: list all posible plugin
4
+ Given a full environment
5
+ And a installed plugin "vim-fugitive"
6
+ Then I should see "vim-fugitive" in installed list
7
+
@@ -0,0 +1,21 @@
1
+ When /^I run command "([^"]*)"$/ do |command|
2
+ @aruba_io_wait_seconds = 20
3
+ step "I run `bundle exec #{bin_path} #{command}`"
4
+ end
5
+
6
+ When /^I successfully run command "([^"]*)"$/ do |command|
7
+ step "I successfully run `bundle exec #{bin_path} #{command}`"
8
+ end
9
+
10
+
11
+
12
+ Then /^I should see "([^"]*)" in installed list$/ do |plugin_name|
13
+ step "I run command \"installed\""
14
+ step %Q{the stdout should contain "#{plugin_name}"}
15
+ end
16
+
17
+
18
+ Then /^I should see update success message$/ do |plugin_name|
19
+ step %Q{the stdout should contain "All your plugin is up to date."}
20
+ end
21
+
@@ -0,0 +1,34 @@
1
+ Given /^There is not \.vim folder in user home\.$/ do
2
+ FileUtils.rm_rf config.vim_home
3
+ end
4
+
5
+ Given /^There is not \.vimrc file in \.vim$/ do
6
+ FileUtils.rm_rf config.vimrc_path
7
+ end
8
+
9
+ Given /^\.vim and \.vimrc$/ do
10
+ FileUtils.mkdir_p config.vim_home
11
+ FileUtils.touch config.vimrc_path
12
+ end
13
+
14
+
15
+ Given /^\.vim is not git repo$/ do
16
+ FileUtils.rm_rf config.vim_home.join(".git")
17
+ end
18
+
19
+ Given /^\.vim is git repo$/ do
20
+ FileUtils.mkdir_p config.vim_home
21
+ Dir.chdir(config.vim_home) do
22
+ `git init > /dev/null`
23
+ end
24
+ end
25
+
26
+ Given /^a full environment$/ do
27
+ step ".vim and .vimrc"
28
+ config.check
29
+ end
30
+
31
+
32
+ Given /^a installed plugin "(.*?)"$/ do |plugin|
33
+ FileUtils.mkdir_p(config.bundle_home.join(plugin))
34
+ end
@@ -0,0 +1,20 @@
1
+ Then /^It should install pathogen for me$/ do
2
+ File.exist?(config.pathogen_path).should be_true
3
+ end
4
+
5
+ Then /^I should not see plugin "([^"]*)" in bundle home$/ do |plugin_name|
6
+ File.exist?(config.bundle_home.join(plugin_name)).should be false
7
+ end
8
+
9
+ Then /^I should not see plugin "([^"]*)" in \.git\/config$/ do |plugin_name|
10
+ File.read(config.gitmodules_file_path).should_not match /#{plugin_name}/
11
+ end
12
+
13
+ Then /^I should not see plugin "([^"]*)" in \.gitmodules$/ do |plugin_name|
14
+ File.read(config.gitconfig_file_path).should_not match /#{plugin_name}/
15
+ end
16
+
17
+ Then /^I should have initial BundleFile$/ do
18
+ File.exists?(config.bundle_file_path).should eq true
19
+ end
20
+
@@ -0,0 +1,23 @@
1
+ Then /^I should get there is no \.vim folder error$/ do
2
+ step "the stderr should contain \"doesn't exist\""
3
+ end
4
+
5
+ Then /^I should get there is no \.vimrc file error$/ do
6
+ step "the stderr should contain \"doesn't exist\""
7
+ end
8
+
9
+ Then /^I should get \.vim is not a git repo warning$/ do
10
+ step "the stdout should contain \"your .vim folder is not a git repository\""
11
+ end
12
+
13
+ Then /^I should get install pathogen notice$/ do
14
+ step "the stdout should contain \"Pathogen is installed into\""
15
+ end
16
+
17
+ Then /^I should see more than one plugin$/ do
18
+ step %Q{the stdout should contain "vim-rails"}
19
+ end
20
+
21
+ Then /^It should get get BundleFile notice$/ do
22
+ step %Q{the stdout should contain "You add more plugins by modify this file"}
23
+ end
@@ -0,0 +1,4 @@
1
+ Then /^It should install "([^"]*)"$/ do |plugin_name|
2
+ File.exist?(config.bundle_home.join(plugin_name)).should be true
3
+ end
4
+
@@ -0,0 +1,22 @@
1
+
2
+ ENV['VIM_JAR_USER_HOME'] = File.expand_path("../../tmp",File.dirname(__FILE__))
3
+
4
+ ENV['VIM_JAR_TEST'] = "true"
5
+
6
+ require 'fileutils'
7
+ require 'aruba/cucumber'
8
+ require File.expand_path('../../lib/vim-jar', File.dirname(__FILE__))
9
+ require File.expand_path('../../lib/vim-jar/cli', File.dirname(__FILE__))
10
+
11
+ FileUtils.mkdir_p ENV['VIM_JAR_USER_HOME']
12
+ module Vim::Jar::World
13
+ def config
14
+ ::Vim::Jar::Config.instance
15
+ end
16
+
17
+ def bin_path
18
+ File.expand_path('../../bin/vim-jar', File.dirname(__FILE__))
19
+ end
20
+ end
21
+
22
+ World(Vim::Jar::World)
@@ -0,0 +1,8 @@
1
+ After do
2
+ FileUtils.rm_rf(File.expand_path("../../tmp",File.dirname(__FILE__)))
3
+ end
4
+
5
+ at_exit do
6
+ FileUtils.rm_rf(File.expand_path("../../tmp",File.dirname(__FILE__)))
7
+ end
8
+
File without changes
@@ -0,0 +1,12 @@
1
+ Feature: Install
2
+
3
+ Scenario: install an existing plugin correctly
4
+ Given a full environment
5
+ When I run command "install"
6
+ Then I should see "vim-fugitive" in installed list
7
+ When I run command "uninstall vim-rails"
8
+ Then I should not see plugin "vim-rails" in bundle home
9
+ Then I should not see plugin "vim-rails" in .git/config
10
+ Then I should not see plugin "vim-rails" in .gitmodules
11
+
12
+
@@ -0,0 +1,7 @@
1
+ Feature: Update
2
+
3
+ Scenario: Update plugins
4
+ Given a full environment
5
+ When I run command "update"
6
+ Then I should see update success message
7
+
@@ -0,0 +1 @@
1
+ plugin "git://github.com/tpope/vim-fugitive.git"
@@ -0,0 +1,91 @@
1
+ require 'vim-jar'
2
+
3
+ module Vim
4
+ module Jar
5
+ class Cli < Thor
6
+ map "-T" => :installed
7
+ default_task :install
8
+
9
+ desc "init","init environment"
10
+ def init
11
+ check!
12
+ done
13
+ exit 0
14
+ end
15
+
16
+ desc "install", "install plugin according to BundleFile"
17
+ def install
18
+ check!
19
+ loader = ::Vim::Jar::Loader.new
20
+ loader.execute
21
+ end
22
+
23
+ desc "Edit", "open BundleFile in editor"
24
+ def edit
25
+ check!
26
+ editor = [ENV['BUNDLER_EDITOR'], ENV['VISUAL'], ENV['EDITOR']].find{|e| !e.nil? && !e.empty? }
27
+ if editor
28
+ command = "#{editor} #{config.bundle_file_path}"
29
+ success = system(command)
30
+ raise ::Vim::Jar::InstallError.new "Could not run '#{command}'" unless success
31
+ else
32
+ ::Vim::Jar::InstallError.new("To open BundleFile, set $EDITOR or $BUNDLER_EDITOR")
33
+ end
34
+ end
35
+
36
+
37
+ desc "installed", "list all installed plugins"
38
+ def installed
39
+ STDOUT.puts ::Vim::Jar::Plugin.installed.join("\n")
40
+ end
41
+
42
+ desc "update", "Update all installed plugin"
43
+ def update
44
+ check!
45
+ if ::Vim::Jar::Plugin.update
46
+ STDOUT.puts "All your plugin is up to date."
47
+ end
48
+ end
49
+
50
+ desc "uninstall", "uninstall installed plugin"
51
+ def uninstall(name)
52
+ check!
53
+ if ::Vim::Jar::Plugin.installed.include?(name)
54
+ ::Vim::Jar::Plugin.uninstall(name)
55
+ STDOUT.puts "plugin #{name} has been already remove from #{config.bundle_home.join(name)}"
56
+ else
57
+ STDERR.puts "You didn't install plugin named #{name}"
58
+ end
59
+
60
+ end
61
+
62
+ private
63
+ def config
64
+ @config ||= Vim::Jar.config
65
+ end
66
+
67
+ def check!
68
+ begin
69
+ config.check
70
+ rescue InitError => e
71
+ STDERR.puts "Can not init environment because of #{e.message}"
72
+ exit 1
73
+ end
74
+ end
75
+
76
+
77
+ def done
78
+ #TODO improve finish message
79
+ STDOUT.puts <<-EOF
80
+
81
+ Congratulation! vimjar already initialized your environment.
82
+
83
+ Try:
84
+
85
+ vimjar install
86
+
87
+ EOF
88
+ end
89
+ end
90
+ end
91
+ end