Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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)

share|improve this question
    
might need a line feed also – soandos Aug 26 '11 at 1:23
    
... it now appears to be solved by running :se cpoptions=aABceFs first. Does anyone know why, or what this is all about? – krubo Aug 26 '11 at 1:31

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.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .