I became familiar with Vim very gradually. By the time I found out about pico, I had long been editing X86Config with i and :wq. I was thankful for the syntax highlighting and remote availability writing C and Java on a Solaris ssh account. I embraced visual-block-mode during late nights at the CMOS lab after editing hspice input vectors manually became intolerable. I internalized [hjkl] by using Gmail shortcuts. And on OS X, actively-developed open source editors are few.

So, Vim does not repulse me.

On the contrary, ctrlp is actually the first time I’ve been excited by Vim.

unite.vim is a clever and thoughtful project. The unix approach of “everything is a file” has numerous advantages that have been extolled well enough; similarly, unite.vim harmonizes Vim’s “everything is a buffer” approach with the idea of “sources”–basically, lists of things. In unite.vim, you can search for files, then query the set of unite.vim actions available on the selected files! That’s awesome. You can query the set of vim commands, then query the output of the vim command. It removes the friction of :redir and registers. It replaces pulldown (GUI) menus, yankring, minibufexpl, :ls, …

  • reddit “thing” table
  • tmux
  • i3wm
  • unix file descriptor
  • unix pipe
  • powershell object
  • monad
  • vim buffer
  • unite.vim source
  • modes / modal editing
  • composition of: commands; buffers; sources/lists;

You can’t combine a vector with scalar, a milligram with a tesseract, or a Word document with a puppy.

on the idea of persistent REPL state:

Stock vim sucks. Install sensible.vim. There, now you have an editor with sane defaults.

If you have added preferences to your .vimrc, then you’ve written a plugin. That’s it. There is nothing vain about adding plugins to vim: composition isn’t much of an advantage if you want everything baked in. On the other hand, it doesn’t make sense to Frankenstein vim out of its scope.

Go further: you can approximate some of the compelling features of acme: