vim-anywhere

vim-anywhere by Chris Knadler is a set of scripts that allow you to invoke Vim for anything that lets you input text. That means the next time you're filling out an annoying web form you can spawn Vim, write your text, then once you save and quit it'll be inserted into the field.

On a Mac that means you'll need MacVim, and you'll also have to set up a shortcut to an Automator workflow. This is all explained in the readme with a screenshot and illustrative gif.

For Linux, you'll need Gnome and gVim. If you run the installation script Linux users will automatically get a keyboard shortcut set up, but Mac users will need to set this manually.

Read More →

Script Roundup: gtfo.vim, vim-sexp

gtfo.vim

gtfo.vim (License: Vim) by Justin M. Keyes is a plugin for opening a file manager or terminal at the current file's directory. In Normal mode, you can type gof to open the file manager, or got to open the terminal. The mnemonic to remember these commands is 'go to the current file's directory in the file manager'.

Capitalising the last letter (goF, goT) will make it open based on the current directory (:pwd).

It has platform-specific support, so on a Mac Finder will be used, while Windows users get Windows Explorer.

Read More →

Vinegar.vim: A Lightweight File Browser

Earlier this year I was at a Vim London meetup, and I was saying to Drew Neil that I didn't think file browsers were idiomatic. I've used NERD tree on and off, but sometimes I wonder if just getting used to netrw would be better.

Some of us need help visualising things, so viewing files in a tree can help get a handle on the structure of a project. The built in file browser will do this -- try pressing :e . then i to toggle the listing style. Despite this, the project drawer style approach used by modern IDEs and GUI editors seems more popular with Vim users, even though it's unnatural in Vim:

Split windows and the project drawer go together like oil and vinegar. I don't mean to say that you can combine them to create a delicious salad dressing. I mean that they don't mix well!

Read More →

Plugins of the Year

I'm peering out at you through a haze of Christmas dinner and fairy lights, finding a welcome distraction from assembling toys and cooking. I've written about many plugins over the last year, but I use two regularly, so I'd like to offer these morsels up as my plugins of the year.

The first is Seek, by Vic Goldfeld. Seek adds a new motion, s, for jumping based on two characters. There have been iterations on this idea since then, but I liked the simplicity of it, and the fact that it feels like built-in functionality.

The next is vim-signify. It shows linewise changes in a file, so you can easily see what lines have changed if you're using a version control system like Git.

Read More →

Script Roundup: InnerFragmentComplete, vim-javacomplete_ex

InnerFragmentComplete

InnerFragmentComplete by Ingo Karkat is a plugin for expanding words based on partial matches:

CTRL-X i: Find matches for inner fragments. It first searches inside CamelCaseWords and underscore_words, either for matches of the keyword characters before the cursor at the inner fragment start, or for fragments whose individual words begin with the typed letters in front of the cursor. If that doesn't find any matches, a fallback search will pick up base matches anywhere inside a word (e.g. "comp" will match "compress" inside "decompress").

Here's an example:

Read More →

Vim Calendar

I wanted to make a Vim advent calendar, but I don't think I'll have time now. I found Bram Moolenaar's 2014 calendar, which can be folded to sit on a desk and has the Vim logo and charity information.

It is available in English and Dutch. You can find the PDF files on my website: http://moolenaar.net/#Calendar

If you are doing your Christmas shopping on Amazon, please consider using the links on this page: http://www.iccf.nl/click1.html A percentage of the sales will go to Vim's charity, helping children in Uganda, and it doesn't cost you anything.

Read More →

Vim for GitHub

If you liked the look of Vim.js, then you might be surprised to know that the web-based editor GitHub uses can be coaxed into a Vim mode. I discovered this after reading a post by Lauris Dzilums about the Ace editor that GitHub uses:

You can press CTRL+, or CMD+, (depends on your OS) to access Ace's settings menu and enable Vim mode there (screenshot). The menu itself works ok, but sadly the Vim mode doesn't, because some required JavaScript files are not available from GitHub.

Lauris provides a JavaScript snippet that you can paste into your browser's developer console to switch GitHub's editor into Vim mode. This also means you can also enable Vim mode when editing a gist.

Read More →

Script Roundup: LiteDFM, investigate.vim

LiteDFM

LiteDFM (GitHub: bilalq / lite-dfm, License: MIT) by Bilal Quadri is a plugin for quickly removing distractions from Vim. It hides things like line numbers and the status bar.

This is another plugin that's inspired by text editors like WriteRoom, which aim to make writing as simple as possible.

investigate.vim

investigate.vim (GitHub: Keithbsmiley / investigate.vim, License: MIT) by Keith Smiley searches for documentation based on the text under the cursor:

Read More →

Vim.js

When I heard about Vim.js, I thought it was another plugin collection for working with JavaScript in Vim. But it turns out it's a pretty interesting Emscripten port of Vim to browsers. It uses other JavaScript-related technology as well, like Node, and the author is currently looking for help if you're interested in that sort of thing.

I wrote a slightly more detailed analysis about it at DailyJS.

Read More →

Maktaba: A Plugin API by Google

Android and iOS are amazing, but you know what kind of sucks? Xcode, Eclipse, and Android Studio! If you've ever developed iOS projects, you'll have wasted countless hours dealing with Xcode build configuration issues, or struggled with Xcode crashing. Faced with these demanding development environments, going back to Vim feels like a breath of fresh air. Everything is made of concrete text files and cold-hard logs, instead of the ambiguity of a GUI that dramatically changes between releases.

When I saw Maktaba, released through Google's GitHub repository, I was surprised -- a Vim project from Google? It turns out Maktaba is a library for Vim plugin authors. It's written by Nathaniel Soares, and was only just released so there are only two contributors so far. I expect this number to increase if it really does streamline plugin development, and Nathaniel can get people using it.

If you've ever dabbled with Vim script you'll know it has its quirks. Maktaba provides a framework that helps bring some sensible conventions to plugin authoring:

Read More →