godbout / kindaVim.docs

Ultimate Vim Mode for macOS
https://kindavim.app
643 stars 4 forks source link
accessibility bindings input keyboard kindavim macos macos-app motions moves swift swiftui vim

kindaVim brings Vim moves to macOS Input Fields and UI Elements.

awesome stuff happening in there


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

Note
If you find that you're missing a motion, command, a count support, or a repeat, just make a request.

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.

See the motions implemented.

kV Keyboard Strategy: keyboard remapping; less accurate.

See the motions implemented.

Commands

See the commands implementation.

Missing something?

Make a request.

APIs

kindaVim writes the current environment information in a json file at ~/Library/Application\ Support/kindaVim/environment.json.

You can be notified of changes in the file with tools like watchman and directly read the environment state with tools like jq. With that information you could for example remap keys differently depending on kindaVim's Mode with tools like Hammerspoon or BetterTouchTool.

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 simply copy paste the file to your new computers.

P.S.: for security reasons Apple is now blocking the use of symlinks for App Preferences since macOS Ventura, so you cannot use anymore tools like Mackup to keep your Preferences synced. You can currently only paste and replace files manually.

Feedback

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

Roadmap

Acknowledgments