win-vind
win-vind copied to clipboard
You can operate Windows with key bindings like Vim.
win-vind
Vim Key Binder for Windows
Description
win-vind provides a lightweight hybrid UI system of CUI and GUI for Windows. And everything is inspired by Vim and its plugins. Simply put, it is a Vim-oriented toy box consisting of various useful features.
Features
System Design
- Fast binding system
- Vim-like mode management
- .vimrc style configuration
- Running in user permission
- Oneshot use for Vim or AHK (e.g.
$ win-vind -f easy_click_left
)
Top Features
- GUI operation without mouse
- Vim emulation everywhere
- Process launcher like
:!vim ~/.vimrc
on resident command line - Low-level key mapping (e.g. Capslock -> Ctrl)
- Keystroke macros
- Tiling window manager
- Hinting feature like Vimium or EasyMotion for GUI.
Top Feature Demo

Macro Feature Demo
https://user-images.githubusercontent.com/42631247/147887231-24424d36-410d-4379-8846-7dc6a5a7f355.mp4
Installation
Chocolatey Version
win-vind supports installation using Chocolatey. To install win-vind with Chocolatey, run the following command from the command line or from PowerShell.
$ choco install win-vind
winget Version
winget is also supported. To install the package, run the following command from your command line.
$ winget install win-vind
Installer Version
Portable Version
Usage
You can refer to the installation and quick tutorial in Usage - win-vind.
.vindrc samples
You can configure it in .vimrc style. What you can do in .vindrc is switch options, set parameters, remap low-level keys, and define function bindings.
" ------------ Example ------------
" Virtual command line options
set shell = cmd
set cmd_fontsize = 14
set cmd_roughpos = LowerLeft
set cmd_maxchar = 100
" Enable block style caret
set blockstylecaret
set blockstylecaret_mode = solid
" Low-level key mapping in resident mode
rmap <capslock> <ctrl>
" Define bindings in GUI Normal mode
gnnoremap <c-h> select_left_window
gnnoremap <c-l> select_right_window
gnnoremap <c-k> select_upper_window
gnnoremap <c-j> select_lower_window
" Define bindings in insert mode
imap <capslock> <f16>
inoremap <f16> to_edi_normal
imap <ralt> <f17>
inoremap <f17> easy_click_left
imap <app> <f18>
inoremap <f18> window_resizer
The Functions page lists all supported functions, the Options document lists parameters and useful extensions, and the Keyword List contains keyword notations for writing .vindrc. If you want to know the default bindings, refer to Default Mappings.
Known Issues
-
EasyClick does not seem to work properly for some applications on older Windows 10 before 1803. The cause is not known, but we have confirmed that it works after 1909. (#11)
-
Windows 10/11 Single Language does not seem to be able to map toggle keys such as
<Capslock>
. (#40) -
If you want to use word motion (e.g.
w
,B
,e
) in MS Office Word, it is recommended to disableUse smart paragraph selection
.
How to build
Preparation
The dependencies required for the build are installed locally in the project directory. The system is not affected.
$ ./tools/setup_libs.bat -msvc 64
Debug
$ cmake -B debug -G "Visual Studio 16 2019" .
$ cmake --build debug
$ ./debug/Debug/win-vind.exe
Release
$ cmake -B release -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 16 2019" .
$ cmake --build release --config Release
$ ./debug/Release/win-vind.exe
If you want to build with MinGW or create an installer, see here.
Contribute
If you would like to contribute to win-vind, see CONTRIBUTING.md.
Related Pages
Similar Projects
License
This software is provided by MIT License.
Author
- pit-ray