• Stars
    star
    12,116
  • Rank 2,697 (Top 0.06 %)
  • Language
    Vim Script
  • License
    Vim License
  • Created almost 15 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

pathogen.vim: manage your runtimepath

pathogen.vim

Manage your 'runtimepath' with ease. In practical terms, pathogen.vim makes it super easy to install plugins and runtime files in their own private directories.

For new users, I recommend using Vim's built-in package management instead. :help packages

Installation

Install to ~/.vim/autoload/pathogen.vim. Or copy and paste the following into your terminal/shell:

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

If you're using Windows, change all occurrences of ~/.vim to ~\vimfiles.

Runtime Path Manipulation

Add this to your vimrc:

execute pathogen#infect()

If you're brand new to Vim and lacking a vimrc, vim ~/.vimrc and paste in the following super-minimal example:

execute pathogen#infect()
syntax on
filetype plugin indent on

Now any plugins you wish to install can be extracted to a subdirectory under ~/.vim/bundle, and they will be added to the 'runtimepath'. Observe:

cd ~/.vim/bundle && \
git clone https://github.com/tpope/vim-sensible.git

Now sensible.vim is installed. If you really want to get crazy, you could set it up as a submodule in whatever repository you keep your dot files in. I don't like to get crazy.

If you don't like the directory name bundle, you can pass a runtime relative glob as an argument:

execute pathogen#infect('stuff/{}')

The {} indicates where the expansion should occur.

You can also pass an absolute path instead. I keep the plugins I maintain under ~/src, and this is how I add them:

execute pathogen#infect('bundle/{}', '~/src/vim/bundle/{}')

Normally to generate documentation, Vim expects you to run :helptags on each directory with documentation (e.g., :helptags ~/.vim/doc). Provided with pathogen.vim is a :Helptags command that does this on every directory in your 'runtimepath'. If you really want to get crazy, you could even invoke Helptags in your vimrc. I don't like to get crazy.

Finally, pathogen.vim has a rich API that can manipulate 'runtimepath' and other comma-delimited path options in ways most people will never need to do. If you're one of those edge cases, look at the source. It's well documented.

Native Vim Package Management

Vim 8 includes support for package management in a manner similar to pathogen.vim. If you'd like to transition to this native support, pathogen.vim can help. Calling pathogen#infect() on an older version of Vim will supplement the bundle/{} default with pack/{}/start/{}, effectively backporting a subset of the new native functionality.

Runtime File Editing

:Vopen, :Vedit, :Vsplit, :Vvsplit, :Vtabedit, :Vpedit, and :Vread have all moved to scriptease.vim.

FAQ

Can I put pathogen.vim in a submodule like all my other plugins?

Sure, stick it under ~/.vim/bundle, and prepend the following to your vimrc:

runtime bundle/vim-pathogen/autoload/pathogen.vim

Or if your bundles are somewhere other than ~/.vim (say, ~/src/vim):

source ~/src/vim/bundle/vim-pathogen/autoload/pathogen.vim

Will you accept these 14 pull requests adding a .gitignore for tags so I don't see untracked changes in my dot files repository?

No, but I'll teach you how to ignore tags globally:

git config --global core.excludesfile '~/.cvsignore'
echo tags >> ~/.cvsignore

While any filename will work, I've chosen to follow the ancient tradition of .cvsignore because utilities like rsync use it, too. Clever, huh?

What about Vimballs?

If you really must use one:

:e name.vba
:!mkdir ~/.vim/bundle/name
:UseVimball ~/.vim/bundle/name

Why don't my plugins load when I use Vim sessions?

Vim sessions default to capturing all global options, which includes the 'runtimepath' that pathogen.vim manipulates. This can cause other problems too, so I recommend turning that behavior off:

set sessionoptions-=options

Contributing

If your commit message sucks, I'm not going to accept your pull request. I've explained very politely dozens of times that my general guidelines are absolute rules on my own repositories, so I may lack the energy to explain it to you yet another time. And please, if I ask you to change something, git commit --amend.

Beyond that, don't be shy about asking before patching. What takes you hours might take me minutes simply because I have both domain knowledge and a perverse knowledge of Vim script so vast that many would consider it a symptom of mental illness. On the flip side, some ideas I'll reject no matter how good the implementation is. "Send a patch" is an edge case answer in my book.

Self-Promotion

Like pathogen.vim? Follow the repository on GitHub and vote for it on vim.org. And if you're feeling especially charitable, follow tpope on Twitter and GitHub.

License

Copyright (c) Tim Pope. Distributed under the same terms as Vim itself. See :help license.

More Repositories

1

vim-fugitive

fugitive.vim: A Git wrapper so awesome, it should be illegal
Vim Script
19,851
star
2

vim-surround

surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease
Vim Script
13,347
star
3

vim-commentary

commentary.vim: comment stuff out
Vim Script
5,849
star
4

vim-sensible

sensible.vim: Defaults everyone can agree on
Vim Script
5,111
star
5

vim-rails

rails.vim: Ruby on Rails power tools
Vim Script
4,096
star
6

vim-dadbod

dadbod.vim: Modern database interface for Vim
Vim Script
3,615
star
7

vim-unimpaired

unimpaired.vim: Pairs of handy bracket mappings
Vim Script
3,312
star
8

vim-abolish

abolish.vim: Work with several variants of a word at once
Vim Script
2,765
star
9

vim-dispatch

dispatch.vim: Asynchronous build and test dispatcher
Vim Script
2,637
star
10

vim-repeat

repeat.vim: enable repeating supported plugin maps with "."
Vim Script
2,597
star
11

vim-vinegar

vinegar.vim: Combine with netrw to create a delicious salad dressing
Vim Script
2,226
star
12

vim-sleuth

sleuth.vim: Heuristically set buffer options
Vim Script
1,874
star
13

vim-eunuch

eunuch.vim: Helpers for UNIX
Vim Script
1,812
star
14

vim-obsession

obsession.vim: continuously updated session files
Vim Script
1,746
star
15

vim-fireplace

fireplace.vim: Clojure REPL support
Vim Script
1,746
star
16

vim-markdown

Vim Markdown runtime files
Vim Script
1,223
star
17

vim-endwise

endwise.vim: Wisely add
Vim Script
1,112
star
18

vim-projectionist

projectionist.vim: Granular project configuration
Vim Script
1,048
star
19

vim-rhubarb

rhubarb.vim: GitHub extension for fugitive.vim
Vim Script
953
star
20

vim-speeddating

speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more
Vim Script
949
star
21

timl

Clojure like language which compiles down to VimL
Vim Script
680
star
22

vim-scriptease

scriptease.vim: A Vim plugin for Vim plugins
Vim Script
674
star
23

dotfiles

tpope's dotfiles. DON'T USE unless you're tpope
Vim Script
622
star
24

vim-haml

Vim runtime files for Haml, Sass, and SCSS
Vim Script
593
star
25

vim-git

Vim Git runtime files
Vim Script
589
star
26

vim-rsi

rsi.vim: Readline style insertion
Vim Script
584
star
27

heroku-fucking-console

When I run heroku console, I want a fucking console, dammit
Ruby
560
star
28

hookup

Automate the bundle/migration tedium of Rails with Git hooks
Ruby
478
star
29

vim-sexp-mappings-for-regular-people

vim-sexp mappings for regular people
Vim Script
428
star
30

vim-bundler

bundler.vim: Lightweight support for Ruby's Bundler
Vim Script
403
star
31

gem-ctags

Automatic ctags generation on gem install
Ruby
396
star
32

vim-tbone

tbone.vim: tmux basics
Vim Script
393
star
33

gem-shut-the-fuck-up

Gem SHUT THE FUCK UP
Ruby
377
star
34

vim-jdaddy

jdaddy.vim: JSON manipulation and pretty printing
Vim Script
354
star
35

vim-ragtag

ragtag.vim: ghetto HTML/XML mappings (formerly allml.vim)
Vim Script
352
star
36

vim-cucumber

Vim Cucumber runtime files
Vim Script
321
star
37

vim-vividchalk

vividchalk.vim: a colorscheme strangely reminiscent of Vibrant Ink for a certain OS X editor
Vim Script
313
star
38

pickler

PIvotal traCKer Liaison to cucumbER
Ruby
299
star
39

vim-characterize

characterize.vim: Unicode character metadata
Vim Script
286
star
40

git-bump

Create Git release commits and tags with changelogs
Ruby
256
star
41

vim-rake

rake.vim: it's like rails.vim without the rails
Vim Script
243
star
42

fivemat

MiniTest/RSpec/Cucumber formatter that gives each test file its own line of dots
Ruby
243
star
43

vim-flagship

flagship.vim: Configurable and extensible tab line and status line
Vim Script
225
star
44

gem-browse

gem edit, gem open, gem clone, gem browse
Ruby
221
star
45

vim-salve

salve.vim: static support for Leiningen and Boot
Vim Script
195
star
46

vim-dotenv

dotenv.vim: Basic support for .env and Procfile
Vim Script
192
star
47

vim-apathy

apathy.vim: Set the 'path' option for miscellaneous file types
Vim Script
178
star
48

vim-afterimage

afterimage.vim: edit binary files by converting them to text equivalents
Vim Script
163
star
49

vim-capslock

capslock.vim: Software caps lock
Vim Script
151
star
50

rbenv-ctags

Automatically generate ctags for rbenv Ruby stdlibs
Shell
147
star
51

rbenv-aliases

Create aliases for rbenv Ruby versions
Shell
129
star
52

vim-liquid

Vim Liquid runtime files with Jekyll enhancements
Vim Script
126
star
53

rbenv-communal-gems

Share gems across multiple rbenv Ruby installs
Shell
118
star
54

vim-rvm

rvm.vim: Switch Ruby versions from inside Vim
Vim Script
117
star
55

vim-classpath

classpath.vim: Set 'path' from the Java class path
Vim Script
110
star
56

rumember

Remember The Milk Ruby API and command line interface
Ruby
106
star
57

vim-heroku

heroku.vim: Heroku CLI wrapper
Vim Script
103
star
58

heroku-binstubs

Create binstubs to easily dispatch the heroku command for specific apps
Ruby
94
star
59

vim-haystack

haystack.vim: fuzzy matching algorithm
Vim Script
73
star
60

vim-rbenv

rbenv.vim: Minimal rbenv support
Vim Script
67
star
61

rbenv-readline

Automatically link rbenv Ruby installs to readline on OS X
Shell
63
star
62

heroku-wildcards

Run a Heroku command across multiple apps
Ruby
52
star
63

rails-default-database

Make database.yml optional in Rails
Ruby
48
star
64

heroku-pgbackups-pull

Import a Heroku PostgreSQL backup into your Rails development database
Ruby
46
star
65

pry-editline

C-x C-e to invoke an editor on the current pry (or irb) line
Ruby
46
star
66

heroku-surrogate

Run commands locally using a Heroku app's environment variables
Ruby
40
star
67

lein-dotenv

Leiningen plugin to merge .env into environment variables
Clojure
35
star
68

heroku-remote

Commands for working with (multiple) Heroku remotes
Ruby
28
star
69

vim-flatfoot

flatfoot.vim: experimental enhancement of "f" and "t" keys
Vim Script
26
star
70

ldaptic

Object-oriented schema-aware LDAP wrapper for Ruby
Ruby
24
star
71

chrome-defenestration

JavaScript
19
star
72

mta-settings

Configure ActionMailer or Mail delivery settings based on the environment
Ruby
12
star
73

zerbo

Zeo Personal Sleep Coach Ruby Interface
Ruby
12
star
74

girth

Git Interactive Ruby Toolset . . . Hippopotamus?
Ruby
11
star
75

.github

this doesn't work does it?
11
star
76

artifice-passthru

Artifice extension that allows you to let certain requests pass thru to use HTTP
Ruby
8
star
77

rbenv-sentience

Make rbenv self aware
Shell
8
star
78

rack-taint

Rack middleware to taint incoming data
Ruby
7
star
79

tpope.github.com

5
star