All Projects → hyiltiz → Vim Plugins Profile

hyiltiz / Vim Plugins Profile

Licence: gpl-3.0
🕓 Profile Vim's plugins, generate awesome statistics and optimize (n)vim startup time

Programming Languages

python
139335 projects - #7 most used programming language
ruby
36898 projects - #4 most used programming language
r
7636 projects
perl
6916 projects

Projects that are alternatives of or similar to Vim Plugins Profile

Vim Packager
Vim plugin manager that utilizes "jobs" and "pack" features.
Stars: ✭ 197 (-61.22%)
Mutual labels:  neovim, vim-plugins
Ivim
I love Vim, and I also love modifying it to be more convenient and efficient. So I name it "ivim"! Welcome to contribute to ivim.
Stars: ✭ 476 (-6.3%)
Mutual labels:  neovim, vim-configuration
Bullets.vim
🔫 Bullets.vim is a Vim/NeoVim plugin for automated bullet lists.
Stars: ✭ 199 (-60.83%)
Mutual labels:  neovim, vim-plugins
Vim Dadbod Completion
Database autocompletion powered by https://github.com/tpope/vim-dadbod
Stars: ✭ 163 (-67.91%)
Mutual labels:  neovim, vim-plugins
nvimrc
vimrc for neovim written in lua
Stars: ✭ 99 (-80.51%)
Mutual labels:  neovim, vim-configuration
Visual Split.vim
Vim plugin to control splits with visual selections or text objects
Stars: ✭ 190 (-62.6%)
Mutual labels:  neovim, vim-plugins
vimapt
A package manager for vim (VimApt => Vim's Advanced Package Tools)
Stars: ✭ 16 (-96.85%)
Mutual labels:  vim-configuration, vim-plugins
Vim Follow My Lead
Vim plugin for showing all your <Leader> mappings in a readable table including the descriptions.
Stars: ✭ 100 (-80.31%)
Mutual labels:  neovim, vim-plugins
neovim
🌟 Cool & Modularized vim configurations to work like an IDE
Stars: ✭ 17 (-96.65%)
Mutual labels:  neovim, vim-configuration
vim
📝 minimalistic vimrc based on KISS principle @vim
Stars: ✭ 46 (-90.94%)
Mutual labels:  neovim, vim-configuration
Targets.vim
Vim plugin that provides additional text objects
Stars: ✭ 2,114 (+316.14%)
Mutual labels:  neovim, vim-plugins
Vim Dadbod Ui
Simple UI for https://github.com/tpope/vim-dadbod
Stars: ✭ 315 (-37.99%)
Mutual labels:  neovim, vim-plugins
Django Plus.vim
🎸 Improvements to the handling of Django related files in Vim
Stars: ✭ 145 (-71.46%)
Mutual labels:  neovim, vim-plugins
Vim Startify
🔗 The fancy start screen for Vim.
Stars: ✭ 4,479 (+781.69%)
Mutual labels:  startup, neovim
Vim Bootstrap
Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.
Stars: ✭ 1,870 (+268.11%)
Mutual labels:  neovim, vim-configuration
Space Vim
🍀 Lean & mean spacemacs-ish Vim distribution
Stars: ✭ 2,785 (+448.23%)
Mutual labels:  neovim, vim-configuration
Hot Reload.vim
A (Neo)vim plugin for Flutter to automatically hot reload the project every time a file is saved
Stars: ✭ 33 (-93.5%)
Mutual labels:  neovim, vim-plugins
Vimrc
📝 Vim Configuration for nerds with vim-plug
Stars: ✭ 33 (-93.5%)
Mutual labels:  neovim, vim-configuration
VimConfig
Configuration files for Vi-IMproved.
Stars: ✭ 23 (-95.47%)
Mutual labels:  vim-configuration, vim-plugins
Spacevim
A community-driven modular vim/neovim distribution - The ultimate vimrc
Stars: ✭ 17,558 (+3356.3%)
Mutual labels:  neovim, vim-configuration

Build Status

TL;DR

# Perl version as an example:
perl <(curl -sSL https://raw.githubusercontent.com/hyiltiz/vim-plugins-profile/master/vim-plugins-profile.pl)

# or Ruby
ruby <(curl -sSL https://raw.githubusercontent.com/hyiltiz/vim-plugins-profile/master/vim-plugins-profile.rb)

# or Python (add -p flat to plot a bar chart)
python <(curl -sSL https://raw.githubusercontent.com/hyiltiz/vim-plugins-profile/master/vim-plugins-profile.py)

# or R
bash <(curl -sSL https://raw.githubusercontent.com/hyiltiz/vim-plugins-profile/master/vim-plugins-profile.sh)

Here is a screenshot to have a quick look at what this is all about.

My Plugins Profile

Here is a peek at the profiling result for my plugins:


Generating vim startup profile...
Parsing vim startup profile...
Crunching data and generating profile plot ...

Your plugins startup profile graph is saved
as `profile.png` under current directory.

==========================================
Top 10 Plugins That Slows Down Vim Startup
==========================================
   1	105.13	"vim-colorschemes"
   2	42.661	"vim-easytags"
   3	31.173	"vim-vendetta"
   4	22.02	"syntastic"
   5	13.362	"vim-online-thesaurus"
   6	7.888	"vim-easymotion"
   7	6.931	"vim-airline"
   8	6.608	"YankRing.vim"
   9	5.266	"nerdcommenter"
  10	5.017	"delimitMate"
==========================================
Done!

Story

If you use vim-plug (or other amazing plugin manager of your choice) to install your vim (gvim or macvim) plugins, then chances are high that it gets addictive. You will find yourself with several dozens of useful plugins.

vim-plug (and NeoBundle) offers you to load your plugins on-demand (lazy-loading). But which needs fine tuning? Well, using vim's built-in profiling vim --startuptime you can get a timing for all function calls during startup. However, the data is for each functions. You will have to figure out the math, and make sure those functions calls are form the same plugins. Even some sorting might help, but sorting the timing for each functions does not really make sense because it is really time of the plugins (but not the functions) that you really care about.

I am poor at doing mental math, even for simple sums. However, with the power of a simple bash script and R, we can get all we want.

This utility automatically detects your plugins directory, and does the rest of the hard work for you.

Supported Plugin-Managers

Here is the list of supported managers. Hopefully, your favourite plugin manager is among the list. If not, or if you prefer to manage your own plguins (using symlinks, of course), we could still adjust the code.

Installation

This is NOT a vim plugin! This is simply a profiler for your vim plugins that are installed through various plugin managers such as vim-plug.

Download the .zip here and then simply run the bash script:

bash ./vim-plugins-profile.sh  # calls R after pre-processing

# Use Perl powers! Built-in RegEx, no dependencies.
perl ./vim-plugins-profile.pl

# Or Python if you are from the other camp.
python ./vim-plugins-profile.py # -p flag plots a bar chart

# Alternatively use Ruby powers! Less dependency, graph with ASCII art
ruby ./vim-plugins-profile.rb

# To use an alternative executable such as neovim, pass it as the first argument.
ruby ./vim-plugins-profile.rb nvim

Then open the profile.png file for the result! It is that simple.

You can run it even without installation:

Dependency

Nothing. Well, at least Bash or Ruby or Perl or Python, but most systems already come with those pre-installed already.

If not (e.g. in M$ Windows systems), then you will need to install several tools before you can run this.

For the Perl Version:

  • Git for Windows: The Git Bash contains a minimal Perl installation which is sufficient to run vim-plugins-profile.pl.

For the Ruby Version:

  • Bash (Cygwin, or Git for Windows will also work).
  • Ruby 2.3 (other version might as well just work. If not, you can repurt an Issue then I'll fix it)

To produce the eye-candy graphs, you can use either R, Perl + GNUplot or Python.

For R, the script prompts whether it should install the R:ggplot2 package if you already have R. Here are the list of dependencies for it:

For Python, you can use either python2 or python3. If you have matplotlib (optional) installed, then you can even generate the bar plot. Implementation for people from the Python camp is merged from @bchretien. It also supports a custom command to run in the exec mode. Feel free to hack your way!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].