Coder Social home page Coder Social logo

vim-awesome / vim-awesome Goto Github PK

View Code? Open in Web Editor NEW
2.0K 2.0K 97.0 4.13 MB

Awesome Vim plugins from across the universe

Home Page: http://vimawesome.com

License: MIT License

Ruby 0.27% Makefile 0.57% Python 46.65% JavaScript 28.19% CSS 0.13% HTML 0.63% Shell 1.24% SCSS 22.33%

vim-awesome's Introduction

Vim Awesome

Vim Awesome wants to be a comprehensive, accurate, and up-to-date directory of Vim plugins.

Many recent Vim plugins are announced on Hacker News or specialized boards, and have since become widely used. But how does a new user find out about these? We wanted to solve that problem and others with Vim Awesome โ€” an open-sourced community resource for discovering new and popular Vim plugins.

Technical report on the details

Where does the data come from?

GitHub, Vim.org, and user submissions.

On GitHub there are more than 30 000 repos that are development environment configurations, commonly called dotfiles. From these repos we can extract references to Vim plugins (as Git URIs), particularly when plugin managers are used.

Although there are orders of magnitude more Vim users than public dotfiles repos on GitHub, it is still a useful source of relative usage data.

Getting set up

  1. Install RethinkDB version 2.3.0 from http://rethinkdb.com/docs/install/. (You may have to dig into the download archives.)

  2. Install Sass and Compass, which we use to generate our CSS.

    $ gem update --system
    $ gem install bundler
    $ bundle install
  3. Install Python dependencies.

    $ pip install -r requirements.txt
  4. Install Node dependencies.

    $ npm install -g webpack
    $ npm install
  5. Start a local server serving port 5001 by invoking, in the project root directory,

    $ make
  6. Initialize the database, tables, and indices:

    $ make init_db
  7. Seed the database with some test data. Download this database dump, and then run

    $ rethinkdb restore -i vim_awesome /path/to/vim_awesome_rethinkdb_dump.tar.gz
  8. Open the website in your browser!

    $ open http://localhost:5001

Contributing

Take a look at some of these issues to get started.

Chat with us on Gitter!

Acknowledgements

Thanks Ethan Schoonover for use of the Solarized colour scheme.

Much inspiration for this website, both conception and design, came from unheap.com, a resource for browsing jQuery plugins.

Built with React, a JavaScript library for building UIs, and RethinkDB, a document-oriented database.

vim-awesome's People

Contributors

aaronmiler avatar andrew avatar andyzg avatar captbaritone avatar denisinla avatar divad12 avatar greenkeeperio-bot avatar i-give-up avatar jgulbronson avatar jonafato avatar julen avatar kristijanhusak avatar morhetz avatar noahfisher avatar pawel-slowik avatar sophiebits avatar xymostech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vim-awesome's Issues

GitHub case sensitivity

Partially related to #22

The case of GitHub usernames matters. Cloning something at keithbsmiley is not the same as cloning at Keithbsmiley. This case sensitivity should be carried over to the install commands. I noticed that it wasn't always. Example
screen shot 2014-06-27 at 2 25 36 pm

project status

vimawesome.com is a great effort, but it seems dormant, based on the twitter account and lack of github activity. It also seems like the scraper is not run regularly.

What are the plans for the project?

RSS feed

A feed of the newest plugins would be cool!

Add UI to sort by newest

Also sort by last updated?

Current sorting is by popularity (by # of users).

UI should clearly show sorting metric.

Add plugin name to page titles

When you have a bunch of tabs open, it can get a bit confusing since the title is always Vim Awesome, it would be great to add the name of the plugin for indivitual pages, e.g. fugitive.vim - Vim Awesome

Re-assign plugin slugs

Currently we have slugs that look like this:

  1. fugitive-vim
  2. vim-markdown-safe-and-sound

Suppose these slugs will be used in a context where the user might want to input them manually, such as for a plugin manager. Then it would burden the user to enter extraneous symbols like the trailing -vim in 1, especially since the user should not care or know about whether it's vim-fugitive or fugitive-vim or fugitive.vim. The leading/trailing "vim" symbol is often used by plugin authors to differentiate their Vim plugin projects from others, and we have unfortunately inherited that in our slugging scheme. It would be good to just remove all leading and trailing "vim" along with adjacent punctuation.

In the second case, Tim Pope's markdown plugin had a suffix appended to it to distinguish from the identically named vim-markdown project by Mike Down. However, because we happened to have scraped the latter first, it was assigned the clean non-suffixed slug while Tim Pope's more widely-used markdown plugin gets suffixed.

One possible solution to give more canonical and "authoritative" plugins the cleaner slug is to re-assign all the slugs and give the un-suffixed ones to the more widely used by plugin manager users. This is not perfect but would likely be more helpful for the user, so that typing in the un-suffixed slug would go to the one that s/he would most likely expect.

We could also consider allowing plugin authors to manually request slugs, possibly in addition to the above.

Thanks to @tpope for bringing up this issue on IRC.

Github Link Ignored

Hi, I submitted a plugin the other day, and included the github URL as well as the vim.org URL. However it seems as though it has ignored the github URL completely.

screen shot 2014-07-29 at 16 50 03

I know my internet was buggy that day, hence why you may see a couple of duplicates in the system for it; would have have something to do with the GitHub URL not being present? Or is it more of a design philosophy that if there is a vim.org URL, that there is no need for a GitHub URL?

Therefore the information about the plugin is only given by that page.

Personally if I had a choice between the two, I would only have the GitHub one.

The Plugin in question is 'vim-root' http://vimawesome.com/plugin/vim-root
And a GitHub URL: https://github.com/parnmatt/vim-root

FR: Sorting?

Hi

This is great, thanksfor the awesome work. Is it possible to have basic sorts like based on date, update, name, popularity etc?

thanks

Fix sidebar on short screens

From an email:

The sidebar, which has position:fixed, does not allow me to access the
items in its navigation: when any of the navigation items in the left
sidebar expand, items in it become inaccessible to me because it goes
past my field of view. Solution: don't make it position:fixed. Maybe
just have the "VimAwesome" logo be position:fixed.

ImportError: No module named flask

Hi there,
I got an error in set up part (step 5 $ make)

Traceback (most recent call last):
  File "web/server.py", line 6, in <module>
    import flask
ImportError: No module named flask
Terminated: 15

my machine is running on OSX10.9.

Consider one-liner alternative in pathogen.vim installation instructions

git clone accepts an optional <directory> argument, which specifies the destination of the cloned repo.

Please consider as an alternative to your

cd ~/.vim/bundle
git clone https://github.com/tpope/vim-fugitive

the equally idiomatic, but more explicit and less intrusive ($PWD!)

git clone https://github.com/tpope/vim-fugitive ~/.vim/bundle/vim-fugitive

Of course I'll understand if you reject the idea for aesthetic reasons :)

Add a "recent" section

It'd be really cool if vimawesome could show all the new vim plugins that people are making. This could be done with a "recent" or "new" section of the site.

Versioning API

This is a cool site. I'm wondering if it could be the missing piece that finally enables a real plugin manager (as opposed to the glorified runtime path manipulators and git clone wrappers we have today). The first step would be to scrape versions and downloads from vim.org and tags and archives from github and make them available via the API. Any interest in pursuing this?

I can certainly help with the implementation, but I think my primary contribution would be on the VimL side of things.

I'll pop in on IRC in case anyone wants to have a more immediate discussion.

Cache with Redis

We use a stupid simple in-memory cache right now, and cache only a subset of URLs.

Unclear how to add multiple tags in submit form

http://vimawesome.com/submit

screenshot

I've no idea how to add both "Plugin" and "Plugin mngr" as tags. Are tags comma-separated? Semicolon-separated? Surely not space-separated, since tags can have embedded spaces!

Attempts to discover the separator by trying '; ' or ',' and expecting a completion popup when I started typing were a failure: I didn't get a completion popup.

Add a software license

Great site, guys.

I was curious about the license for the code but couldn't seem to find it. Could one of you guys add a LICENSE file with that info?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.