Skip to content
Vim normal mode emulation anywhere in Windows, powered by Autohotkey.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
remap_caps_esc.ahk
vimdows-ng.ahk
vimdows_build_exe.bat

README.md

vimdows-ng - vim normal mode anywhere in Windows

Info

Vimdows-ng allows you to use Vim (or vim-like) normal mode anywhere in Windows.

Use the provided executable or the .ahk script with Autohotkey. It does not require any special permissions and will run in your system notification area until activated, when it'll show an icon on your taskbar and a small tooltip overlay in the top-left corner of the screen.

This is based on previous work of achalddave who himself modified the original script by Rich Alesi, and most of the credit for this script goes to him.

Activate normal mode

  • with Shift-Esc
  • with Esc for selected programs:
    • Matlab
    • Thunderbird Text Composition

Basic VIM navigation and text manipulation

If you are not familiar with VIM yet, you might want to try a vim tutorial. Or you might want to try Vim Adventures :)

A good in-depth book is Practical VIM.

Keys                                   Function
====                                   ========
h, j, k, l, w, b, $, ^                 navigation
dd, d<w, b, $, ^>                      deletion
o, O                                   insert lines and exit normal mode
p, P                                   paste lines
v                                      yank mode; not perfect
	                                           hit y after you're done selecting to copy
<#[cmd]>                               Run 'cmd' # times. E.g. 3dd, 4w, 10l, etc
u, <Shift> r                           Undo, redo
/, n                                   Find, next found result (Uses Ctrl + F and F3)

Some advanced mappings in normal mode provided by vimdows-ng

Keys									Function
====									========
a, A 									append at cursor / end of line
0 									    go to first character in line
C, D 									change / delete rest of line
J									    move next line to end of this line
gg, G 								    go to beginning/end of document
5G 										go to a specific line
gt, gT 									go to next/previous tab
y2w, yb, yy, y$, ... 					yank 2 words, yank back, yank line, yank rest of line
yi(w)									yank inner word
d2w, c5w, cb, ... 						change and delete mode
di(w)									delete inner word
x, X  								    delete single characters
Y  										yank rest of line
I 										go to beginning of line and enter insertion mode
e 										go to end of word
<Ctrl> u, <Ctrl> d 						go page up/down
<Ctrl> b, <Ctrl> f 						go page up/down
~, 3~,v3w~,... 							Toggle case of next char(s) or visual selection.

More modifications in vimdows-ng

  • Change-mode, change-inner, delete-inner, yank-inner modes.
  • show tooltip "Vimdows" when active (useful when hiding task bar)
  • correction of indent and undo
  • provide another script to remap caps to esc.
  • limit of 50 to not blindly execute a repeated command too often (e.g. 500w -> 50w)

Application-specific modifications:

Matlab:

  • Proper indent using editor indenting.

Todo:

  • f char should move to next occurence of char
  • jump between block beginning/end (in vim, % jumps between { and }, for instance)?

You like this? You'll love these:

AHK_L Alternative

  • vim.ahk (better code structure, but very slow)

AHK Application-specific

Browsers

Office

Code

  • JetBrains IDEs: IdeaVim
  • for most IDEs, it's better to find a specific plugin if available.

Editors

Window-Management

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.