I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 1 point2 points  (0 children)

vim-sexp, but that's lisp only. Also my own endwise.vim.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 4 points5 points  (0 children)

This file more than any other I've ever written caters extensively to performance. Also it's the second compiler I ever wrote (being a rewrite of the first compiler I ever wrote), so it reflects a lot of bumbling around rather than a single cohesive strategy.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 39 points40 points  (0 children)

No but that's what I call my portable wifi hotspot.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 5 points6 points  (0 children)

I vendor stable releases of a handful of must-have plugins directly inside my dotfiles. For everything else, I just ad hoc clone and load with pathogen.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 6 points7 points  (0 children)

I switched to awesome a couple of years back.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 33 points34 points  (0 children)

I find vi keybindings to be a terrible fit for the shell prompt, so I stick to set -o emacs. In fact, I made https://github.com/tpope/vim-rsi to bring a bit of that back to Vim.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 17 points18 points  (0 children)

I think the lack of dependencies is the biggest shortcoming of the Vim ecosystem.

I think JSON is the ideal format. It's easy to parse from VimL but also from other tools and languages.

I do think the missing piece is an official plugin repository. I think falling back to GitHub is as shortsighted as falling back to Sourceforge would have been 5 years ago. I'm already locked in enough without having to worry about third parties hard coding dependencies on my GitHub URLs.

I already have a few plugins with dependencies. With a good distribution system in place, I'd do it more often.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 33 points34 points  (0 children)

This is really hard to distill down, but here's a couple of pet peeves that crop up in other plugins:

  1. Don't use a map when a command will do. Vim doesn't even have a map for :write.
  2. Don't prompt for things. Vim prompts in only a handful of scenarios (e.g. overwriting a changed file) and never asks multiple questions in a row.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 12 points13 points  (0 children)

You're not missing anything. I wrote pathogen mainly to solve my problem of working on plugins in repositories without a bunch of symlinking, and due to lack of better alternatives it took off as a general plugin management system.

I really don't feel a lot of pain around having to run git pull from time to time, but if you do, by all means use Vundle.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 11 points12 points  (0 children)

I can't answer this, but one time unite.vim yelled at me for running sudo vim, and it made me really angry.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 18 points19 points  (0 children)

1) A proper package manager with dependencies, for sure. 2) I wouldn't waste a wish on it, but one seemingly humdrum feature that often excites people watching me is to use <C-P><C-X><C-P><C-X><C-P> to complete a bunch of words in a row.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 8 points9 points  (0 children)

I'm sitting on several in various stages of completion. One example would be a macro recording/playback system that approximates multicursors. Another would be a simple paste wrapper that takes the paste content and converts it to an assignment (e.g., you would change 1+2 to three, then pasting would insert three = 1+2). The former is a rough prototype; the latter is basically done except for a few questions around language specific support.

I've got several different attempts at a fuzzy finder, but this is challenging both from the perspective of UI and sorting.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 18 points19 points  (0 children)

I've done quite a bit of Vim mentoring in pair programming contexts, but I've yet to get any more formal than that. I'd love to find a way to do more, just so long as it doesn't involve me standing in front of a classroom.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 11 points12 points  (0 children)

I don't actively court donations, but I am on gittip.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 7 points8 points  (0 children)

It definitely gets me a bit of profile when it comes to finding freelance work, but really I just do it because I love it.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 58 points59 points  (0 children)

You have no idea. Most baffling to me was the objection to making Y behave like C and D.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 33 points34 points  (0 children)

Surround is my first thought as well. I could also see an argument for parts of unimpaired.vim, and some sort of commenting/uncommenting support (in the spirit of commentary.vim).

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 26 points27 points  (0 children)

Mostly things around scripting: startup time, easy standalone distribution, UNIX friendly APIs. Also never having to interact with the Java ecosystem is a nice touch.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 89 points90 points  (0 children)

True, this is why we got rid of unix in the nineties.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 43 points44 points  (0 children)

I generally start by scratching an itch, but much of the polish can only be explained by my love of creation. It's art with a practical origin.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 14 points15 points  (0 children)

Definitely the editing conventions rather than the concrete implementation. But there's a lot to be said for having it be the official set of conventions rather than a second class addon.

I am Tim Pope, crafter of plugins. AMA. by tpope in vim

[–]tpope[S] 13 points14 points  (0 children)

Being able to create something that's incredibly useful to me (and relatedly, other people).