Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to unmap TAB and do not make Ctrl-I invalid in VIM

Tags:

When I use vim in normal mode, I often press the TAB key accidentally, the key TAB do the same thing as Ctrl-I in default. I want to make the key TAB do nothing, so I put this line in the vimrc file:

nmap <TAB> :echo<CR>  

Thus, the key TAB will do nothing, but this made the key Ctrl-I do nothing too. So, how to make the TAB do nothing and the Ctrl-I work well as before in vim (in normal mode) ?

like image 672
tisyang Avatar asked Feb 01 '13 07:02

tisyang


2 Answers

Due to the way that the keyboard input is handled internally, this unfortunately isn't generally possible today, even in GVIM. Some key combinations, like Ctrl + non-alphabetic cannot be mapped, and Ctrl + letter vs. Ctrl + Shift + letter cannot be distinguished. (Unless your terminal sends a distinct termcap code for it, which most don't.) This also applies to <Tab> / <C-I>, <CR> / <C-M> etc. This is a known pain point, and the subject of various discussions on vim_dev and the #vim IRC channel.

Some people (foremost Paul LeoNerd Evans) want to fix that (even for console Vim in terminals that support this), and have floated various proposals.

But as of today, no patches or volunteers have yet come forward, though many have expressed a desire to have this in a future Vim 8 major release.

like image 57
Ingo Karkat Avatar answered Oct 12 '22 04:10

Ingo Karkat


I would advice to having <TAB> do something useful:

nmap <TAB> <C-W> nmap <TAB><TAB> <C-W><C-W> 

this way you can use tab for the window operations. Of course with this you cannot have the ctrl-i behavior. I map ,i for this:

nnoremap ,i <C-I> 
like image 29
skeept Avatar answered Oct 12 '22 05:10

skeept