Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can terminals detect <Shift-Enter> or <Control-Enter>?

Is it possible for the terminal to detect ⇧ Shift+Enter↵ or Ctrl+Enter↵ keypresses?

I am trying to configure vim to do key mappings that use these sequences, and while they work fine in gvim, they don't seem to work in any terminal console.

The curious thing is that although Ctrl+Enter↵ is not detected in vim, mapping Enter↵ to Esc maps properly, but then pressing Ctrl+Enter↵ behaves like Enter↵!

like image 916
Nicolas Wu Avatar asked Feb 28 '09 14:02

Nicolas Wu


1 Answers

Some terminals send <NL> when <C-Enter> is pressed. This is equivalent to sending <C-J>.

To find out what your terminal does with <Shift-Enter>, <Ctrl-Enter> and <Enter>, go to your terminal, type <Ctrl-V> (similar to sykora's suggestion for vim), and type in the sequence you're interested in.

Using gnome-terminal, I get the following:

  <Enter> : ^M <S-Enter> : ^M <C-Enter> : <NL> 

Looking at man ascii indicates that ^M gives the <CR> sequence.

The answer is that it depends on the terminal, and there's an easy way to check.

like image 181
Nicolas Wu Avatar answered Oct 03 '22 01:10

Nicolas Wu