map function keys like <CR> in vim on cygwin

0

Step 1 in vim:

:map o iinsert<CR>some<CR>lines<ESC>

In a normal setup such as debian, pressing o now will insert this as desired:

insert
some
lines

But in vim on cygwin, the <CR> does not parse correctly, so pressing o will insert this:

insert<CR>some<CR>lines<ESC>

How can I make this kind of mapping work correctly in cygwin?

(Note: the output of :verbose map is identical on debian and cygwin)

krubo

Posted 2011-08-26T01:20:57.383

Reputation: 481

might need a line feed also – soandos – 2011-08-26T01:23:36.547

... it now appears to be solved by running :se cpoptions=aABceFs first. Does anyone know why, or what this is all about? – krubo – 2011-08-26T01:31:01.003

Answers

2

You probably need to either ":set nocompatible" first, or create a ~/.vimrc (having a vimrc automatically does the equivalent of :set nocompatible).

The reason you want to be in nocompatible mode is because that tells Vim to enable large amounts of its enhanced feature set which is not strictly compatible with the original vi's behavior.

This also answers your question about ":se cpoptions=aABceFs"—you are removing the '<' character from that option, which, when present, disables the recognition of <...> codes in mappings, etc.

Heptite

Posted 2011-08-26T01:20:57.383

Reputation: 16 267