The Site
kindavim.app for all the fancy stuff.
Why kindaVim
Because Vim moves anywhere is fucking cool. And also kV makes using the keyboard more consistent on the whole macOS, where sometimes CTRL-P/CTRL-N go up/down lists, but sometimes it doesn't. Thanks Apple.
License
Unlimited trial. The trial is: without a coffee a month kindaVim sleeps in the mornings. (It will scold you from the Menu Bar when you'll try to use it.) You're still able to use it fully-featured the afternoons. (Until 5am the next day. Those are long afternoons, yes.) So if you're like me and spend your mornings reading, swimming in the open sea or climbing rocks, then kV is basically free.
Current Vim Implementation
Motions
Note
For motions that accept regexes, kV uses the ICU Regular Expressions (Perl) rather than Vim's own flavor ones.
kV Accessibility Strategy: text manipulation; accurate.
kV Keyboard Strategy: keyboard remapping; less accurate.
Commands
See the commands implementation.
APIs
kindaVim sends Distributed Notifications to macOS when the Vim Mode changes, so that you can hook an external tool like BetterTouchTool or Hammerspoon and respond to those changes. The Notifications Names should be self-explanatory:
- kindaVimDidEnterInsertMode
- kindaVimDidExitInsertMode
- kindaVimDidEnterNormalMode
- kindaVimDidExitNormalMode
- kindaVimDidEnterVisualMode
- kindaVimDidExitVisualMode
Sync your Preferences
Currently the Preferences are a plist file located at ~/Library/Preferences/mo.com.sleeplessmind.kindaVim.plist
.
You can add it to your dotfiles, or use a tool like Mackup to keep the Preferences in sync between your computers. (Mackup explicitely supports kindaVim.)
Feedback
- whether you need a missing move, want to report a bug or ask for a feature, just open an issue.
AccessibilityStrategyTestApp
Testing the Vim moves when using the macOS Accessibility requires building an external app. This app, as well as the tests of each move in the context of the Accessibility Strategy, are open source and available here: AccessibilityStrategyTestApp
Alternatives
- Karabiner-Elements (open source, free)
- VimMode.spoon (open source, free)
- SketchyVim (open source, free)
- ti-vim (closed source, one time purchase)
Roadmap
- adding new motions
- adding new apps to The Wizard
Acknowledgments
- Sindre Sorhus for LaunchAtLogin and KeyboardShortcuts, that saved me countless of hours of headaches
- Sparkle for the Sofware Updater. this is great shit.
- Clipy for Sauce, a magnificent Swift package to handle Keyboard Layouts headaches