It is important to first understand that
<c-w> is not a map but a built-in command when vim is operating in a particular mode. It is often referred to as a "normal command" since one uses it in normal mode1, and it can be triggered using the
:normal! command. There is no mapping involved; the normal commands are hard coded in C. If you open up normal.c, you can see the character
^W is to associated with the function
nv_window in a large, fixed, data table of normal commands.
Although mappings allow you to override default behavior, you cannot change the built-ins and they can always be accessed using
feedkeys(..,'n'), etc. When vim is processing input when mappings are allowed, such as in
feedkeys(..,'m'), it first checks if there are any mappings which match, then continues processing normal commands or until an invalid sequence is encountered.
This explains why you cannot
unmap a built-in normal command and why you can
nnoremap to a
<nop>, which is specifically designed for this purpose. Why would you choose
nnoremap instead of
nmap in this case? Well, there's not a great reason, but the convention is to use
*noremap always, unless you really need remapping. A good example of when to use an
nmap is those to
<plug> mappings in a plugin.
Side note: you might wonder why there are the
:map! forms in addition to
vmap, etc. Originally, in vi there were two main modes; (normal) command and insert, so having two forms made sense. However, to write robust code, it is almost always better to spell it out in each mode.
1. At one time normal mode was referred to as command mode and visual mode, but forget about this entirely.