I write a lot of code and tired of pressing shift each time I need a special character. And since I use special chars much often, then numbers, I want to reverse shift behavior on them.
So, if I type <4> I’ll get ‘$’ and if I type <shift>+<4> I’ll get ‘4’ and so on for each number. This mapping should work only in insert mode.
I’ve tried:
:set langmap 123...;!@#...,!@#...;123 "works only in normal-mode
:imap 4 $
:imap $ 4 "recursive mapping error
Use
:ino, which does the same thing as:imapexcept that it doesn’t look for maps in the replaced text. (it’s short for ‘inoremap’) That will fix the recursion issue.See here for more information:
http://vim.dindinx.net/orig/html/map.txt.php
Or type :h map for vim online help (same thing, just inside vim).