views:

883

answers:

2

When running a vim instance in gnu screen hitting shift enter in insert mode adds an 'M' and then a newline, rather than just a newline.

Does anybody know what the problem might be, or where to look? Thanks in advance

Relevant system info:

Ubuntu 8.04.1

Screen version 4.00.03 (FAU) 23-Oct-06

VIM - Vi IMproved 7.1 (2007 May 12, compiled Jan 31 2008 12:20:21) Included patches: 1-138

Konsole 1.6.6 (Using KDE 3.5.10)

Thanks to the comments. When checking the value of $TERM I noticed that it was xterm (as expected), but within screen $TERM was set to screen-bce. Setting TERM=xterm after launching screen resolves this issue.

Adding the following to ~/.screenrc solved the problem without having to do anything manually:

term xterm

+2  A: 

Missing info from your question:

  1. Where do you run screen and see this issue? Some terminal app (KTerminal, Gnome terminal, virtual console etc) or remote session (eg putty, ssh from another computer)
  2. do a “echo $TERM” and tell us its output
  3. do a “cat -v”, press Shift-Enter, then Enter, then Ctrl-D and then tell us what is output.
ΤΖΩΤΖΙΟΥ
cat -v care to expand on this little treasure?
ojblass
cat -v will display control codes in a readable format. In this case, if his terminal outputs control codes when Shift-Enter is pressed, they will be shown.
ΤΖΩΤΖΙΟΥ
A: 

First, you could fix your $TERM for within konsole. Install "ncurses-term" and configure konsole to set $TERM=konsole-256color. Then configure screen with "term screen-256color". Or 'konsole' and 'screen', respectively, if that's your preference. Konsole and screen are not xterm and doesn't support everything xterm does, so using incorrect $TERM can lead to bad things.

graywh