HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
carlhuda
janus
Vim Script2010–2019
carlhuda / janus

janus

Vim distribution

35Distinct people
37Mentions
4Explicit recommenders
7.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Vim distribution

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I love Ctrl-P! You can use Ctrl-B to search only open buffers. Ctrl-P is the recommended find plugin from the janus vim distribution: https://github.com/carlhuda/janus I use…

gregwebs used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year37 dated mentions

Observed mentions: 2010-12-15 20:44:06 UTC to 2019-03-30 18:05:07 UTC.

0369122010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 12 mentions; 2 submissions, 10 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 12 mentions; 0 submissions, 12 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC101
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC12210
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC12012
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC606
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC202
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Janus: Vim Distribution This is a distribution of plug-ins and mappings for Vim, Gvim and MacVim. It is designed to provide minimal working environment using the most popular plug-ins and the most common mappings. The distribution is completely customisable using a ~/.vimrc.before and ~/.vimrc.after Vim RC files. Updating to the latest version To update to the latest version of the distribution, just run rake inside your ~/.vim directory. NOTE: If you ever have an error updating Janus relating to a missing commit in a submodule, please try running rake again before submitting an issue. Mailing list The mailing list is hosted at Google Groups, please join it for discussion and announcements. Pre-requisites The distribution is designed to work with Vim >= 7.3. The distribution also requires ack, ctags, git, ruby and rake. For the most comfortable experience, use the GUI version of Vim. Linux users should install gvim, OSX users should install MacVim. The recommended way of installing MacVim is using Homebrew, but before installing MacVim you need to use system-wide Python (If you are using python that is): If you're using pythonbrew: do pythonbrew off $ brew install macvim If you don't use Homebrew, you can still download MacVim here. Take a look at the Pre-requisites wiki page for more information. Installation To install Janus, please use our automatic installer , which backs up any Vim files found in your home folder and installs Janus. $ curl -L https://bit.ly/janus-bootstrap | bash Customization You can use ~/.gvimrc.before and ~/.vimrc.before for settings Janus itself uses, such as the leader setting. You may also use ~/.gvimrc.after and ~/.vimrc.after for any additional settings; it is also a good place for overriding Janus settings, as both files will be loaded at the end of Janus. For example, to override the default color schemes: $ echo 'color desert' >> ~/.vimrc.after $ echo 'color molokai' >> ~/.gvimrc.after If you want to do additional customization or add more Vim plugins, create a ~/.janus directory and add your plugins there, either with a git clone or by adding submodules to your own git repository there. This directory is treated like a normal pathogen directory. For example: $ cd ~/.janus $ git clone https://github.com/vim-scripts/Rename2.git rename2 Or, if you have a git repository in ~/.janus, you can use a submodule: $ cd ~/.janus $ git submodule add https://github.com/vim-scripts/Rename2.git rename2 If you would like to disable an included plug-in, you can do that with the janus#disable_plugin() function from inside your ~/.vimrc.before. This function takes a plug-in name as an argument without the group. For example, if you would like to disable the NERDCommenter plug-in, you can do that with the command: $ echo "call janus#disable_plugin('nerdcommenter')" >> ~/.vimrc.before WARNING: We've noticed over and over, that people fork Janus just to customize it. This is bad practice for several reasons and you should not do that, and here's why: Janus is fully customisable and there's no need to change the core for using a different plugin fork or using a different mapping. Forking means maintenance; maintenance means burden. Do not burden yourself with maintaining a fork; that's what the ~/.janus folder is for. If you find yourself needing a customisation that is not possible with the current setup, then please open an issue or consider submitting a pull request to make it possible to continue using/improving the official repo. WARNING: Any uncommited files inside the janus folder will be removed the next time you run rake so make sure to either put them in the custom folder (~/.janus), or commit them. We clean the janus folder in case we replace a manually installed plugin (using rake tasks) with a submodule. For more information on how to customize Janus, you might want to take a look at the Customization wiki page. Additional you can see Example of customization. Intro to VIM Here're some tips in case you've never used VIM before: Tutorials Type vimtutor into a shell to go through a brief interactive tutorial inside VIM. Watch this presentation at VIM: Walking Without Crutches or read the slides on Speaker Deck. Watch the screencasts at vimcasts.org Watch Derek Wyatt's energetic tutorial videos at his site Read wycats' perspective on learning Vim at Everyone who tried to convince me to use vim was wrong Read this and other answers to a question about vim at StackOverflow: Your problem with Vim is that you don't grok vi Read the Getting Started with Vim tutorial on SitePoint Read the Effective Rails Development with Vim tutorial on SitePoint Modes VIM has three modes: insert mode- stuff you type is added to the buffer normal mode- keys you hit are interpreted as commands visual mode- allows you to select blocks of text To enter insert mode, hit i To exit insert mode, hit <ESC> To enter visual mode, hit v To exit visual mode, hit <ESC> Useful commands Use :q to exit vim Certain commands are prefixed with a <Leader> key, which maps to \ by default. You can, for example, use let mapleader = "," to change this to a comma. If you want this to be in effect for uses of <Leader> in the .vimrc file, make sure to define this in ~/.vimrc.before Keyboard cheat sheet. Features This Vim distribution includes a number of packages built by others. Base Customizations Janus ships with a number of basic customizations for vim: Line numbers Ruler (line and column numbers) No wrap (turn off per-buffer via :set wrap) Soft 2-space tabs, and default hard tabs to 2 spaces Show trailing whitespace as . Make searching highlighted, incremental, and case insensitive unless a capital letter is used Always show a status line Allow backspacing over everything (indentations, eol, and start characters) in insert mode <C-P> inserts the directory of the current file into a command Automatically resize splits when resizing the Vim window (GUI only) <leader>ew expands to :e (directory of c
Read the full README on GitHub

What Hacker News says

37 sources
You're right, basic Vim or Neovim are definitely not easier, especially that you have multiple packages to choose from. I believe it's easier to start with one of existing Vim configurations like Janus[0] or spf13-vim[1]. I tried a couple of such frameworks and they helped me a lot. They come with set of packages for navigation, fuzzy finding, as well as with some package manager. They're also quite easy to install. [0] - https://github.com/carlhuda/janus/ [1] - https://github.com/spf13/spf13-vim
In Coc.nvim – Intellisense Engine for Vim8 and Neovim
I've been using MacVim for close to 3 years now w/o any slowness, CtrlP (plugin) sometimes gets buggy with large projects but aside from that buffer navigation is always good, but then again I'm running on SSD and maxed out ram on my mbp. I also use Janus https://github.com/carlhuda/janus so i might be a victim of improvements made by them. Speed is the #1 reason I switched to Vim
In From Vim to Emacs
Completely respect where you're coming from, but totally disagree. I made a few abortive switches to Vim that didn't last a week because my productivity was too hampered and the environment too extreme & foreign. To a newcomer like me, Vim's built-in help was less than worthless, since you pretty much need to know the Vim term for what you're looking up to find it. Googling around wasn't much more effective (there's a lot of garbage in the Wikia for Vim that comes up at the top of many searches). In the end, I needed to read these two "gentle" introductions to Vim to even understand what it was all about: http://stevelosh.com/blog/2010/09/coming-home-to-vim/ http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convi... …and then I needed a mostly-well-documented distro like Janus (https://github.com/carlhuda/janus) to ensure that my pro
Read the rest
ductivity wouldn't take a huge hit those first few weeks. Some folks can probably go all-in cold turkey, but I needed the training wheels.
In Square open-sources its Vim repo, Maximum Awesome
To seed a comment, here are some VIM links I have enjoyed recently: https://github.com/carlhuda/janus is an easy way to pick up some nice plugins. I found it overwhelming the first time I played with it, but I am back around to trying it again and liking it better this time. A set of crazy tips that made me learn to love the g commands: http://www.rayninfo.co.uk/vimtips.html I believe I went to that from http://vim.wikia.com/wiki/Vim_Tips_Wiki, which isn't as fun to navigate as I would like it to be.
In Learn Vimscript the Hard Way
Yes. I've learned tons from the vim setups of individuals and from some vim "distributions". A rather non-exhaustive list of examples: Steve Losh's dotfiles: https://bitbucket.org/sjl/dotfiles/src Drew Neil's dotfiles: https://github.com/nelstrom/dotfiles Tim Pope's vim plugins (the vim-* repos): https://github.com/tpope Kana Natsuno's vim plugins (the vim-* repos): https://github.com/kana spf13-vim distro: https://github.com/spf13/spf13-vim Janus distro: https://github.com/carlhuda/janus I don't use any of these "stock" or consider them authoritative -- I've slowly cherry-picked from these and other sources to learn about patterns, plugins, tips, etc. Each source has its biases, implicit and sometimes explicitly documented. Those biases are usually a good thing as they reflect the workflows and customization needs of the authors. I w
Read the rest
ant to learn from these to better tailor my own customizations.
In Vim Revisited (2011)
If you have 15 minutes and you're interested in vim, go to your terminal or unix shell & enter the command vimtutor. The tutorial there will get you going really quickly, especially in combination with reading Yehuda's article. It's also worth checking out this distribution https://github.com/carlhuda/janus It's easy to install and comes with a bunch of great plugins. One of the huge benefits of vim is the plugin community.
In Everyone Who Tried to Convince Me to use Vim was Wrong (2010)
>> Does anyone know of a guide to getting a sane, non-broken vim working with some basic plugins like syntastic There are a number of vim-setups that are popular. janus (https://github.com/carlhuda/janus), spf13 (https://github.com/spf13/spf13-vim) are pretty popular ones. >>Last time I tried I couldn't bind F-keys for some reason F keys bind fine for me, using OS X Terminal, and gnome-shell in linux. Are you using an esoteric term? >> I couldn't get syntastic's error marking column to stay on instead of shifting my text back and forth all the time That is using the SignColumn part of vim. As far as I know, vim doesn't allow you to force the existance of SignColumn. You can open up a bug report at their Google Code repo if you think its worthwhile >> I couldn't get auto-complete mapped to tab properly Depending on your language, YouComple
Read the rest
teMe (https://github.com/Valloric/YouCompleteMe) is amazing, but if you don't do C based stuff NeoComplCache is great too (http://www.vim.org/scripts/script.php?script_id=2620) >> the extra functionality of vim ends up being counter-productive when none of it works right To be fair, thats true of any tool.
In Vim After 11 Years
I recently "declared vim bankruptcy" and rebuilt my vimrc from scratch. I want a full-featured vim, but I want to keep it responsive. There are many fancy presets out there https://github.com/skwp/dotfiles https://github.com/carlhuda/janus https://github.com/spf13/spf13-vim https://github.com/vgod/vimrc but they freak me out. They turn vim into a singing, dancing, syntax/spell checking, indexing, buffer Whack-a-mole. My philosophy is that vim shouldn't do anything behind your back, but it should do great things if you ask. * Jumping to definitions * Finding all uses of a symbol in a repo * Running things + A test + Code in a repl * Git blame, diff * Summarizing methods in open file * Navigating my (rails) app When putting this together, I found Vundle to be the easiest package manager. Just specify any desired
Read the rest
vim plugin github repos in your vimrc and let the :BundleInstall, :BundleClean etc commands do the rest. I used the standard plugins for most of the stated objectives, but there are places where I found some tricks. The coolest trick is running external programs without locking vim. You can send commands and selections to a tmux terminal using Vimux: https://github.com/benmills/vimux After wrangling with running vim under tmux, I discovered that the vimux plugin works in MacVim too when tmux is running alongside. The thing I run most often is tests. In Rubyland people advise using Guard, which runs tests automatically when test files change. However this goes against my "don't do things behind my back" philosophy. Vim-turbux is more my taste. It extends vimux to run cucumber and rspec tests with the press of a key: https://github.com/jgdavey/vim-turbux The next area where most megadotfile presets are lacking is finding the uses of code. Finding code definition is pretty well handled by exuberant-ctags and vim-rails, but finding code uses is trickier. The cscope utility does this, but its language support is limited from what I could tell. Another contender is GNU global. Its setup is...interesting: http://simple-and-basic.com/2008/10/using-rtags-ang-gtags-fo... I couldn't get it working and the GTAGS files it generates cluttered my repos. I cheated and just mapped a key to do :Ggrep (git-fugitive) on the current word. While cscope or global would give the finest results, a massive grep comes close. Let me know, anyone, if you've gotten the tagging systems working better. My work in progress is here: https://github.com/begriffs/dotfiles I'd appreciate any criticism; I have lots to learn.
In Plugins you should put in your vimrc
I've been content with the Janus[1] extensions for about a year now but I just added MiniBufExplorer and I'm really enjoying that. I typically keep three panes open, one of which is NERDTree. Right now my biggest gripe is the strange highlighting of the Play! framework's template files. The files are name.scala.html which results in weird highlighting of the inline Scala. I have yet to find a good solution (admittedly I haven't looked in a while) to this but if someone knows of one I'd love to hear it. [1] https://github.com/carlhuda/janus
In Vim as you IDE

Showing the 15 most recent of 37 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.