screen-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [screen-devel] screen + tcsh


From: Amadeusz Sławiński
Subject: Re: [screen-devel] screen + tcsh
Date: Tue, 18 Oct 2016 23:51:09 +0200

On Tue, 18 Oct 2016 09:28:29 -0400 (EDT)
Josef Ridky <address@hidden> wrote:

> Hi, 
> 
> I would like to ask for one thing about keybinding in screen.
> Following problem is the reason, why am I asking:
> 
> -----------------------------------
> Description of problem:
> The home and end keys no longer work in screen when using tcsh as
> shell.
> 
> Steps to Reproduce:
> 1. start screen:
> $ screen
> 
> 2. start tcsh
> $ tcsh
> 
> 3. make sure home and end are bound:
> $ bindkey | egrep '^(home|end)'
> home           -> beginning-of-line
> end            -> end-of-line
> 
> 4. press home or end
> 
> Actual results:
> pressing "home" and "end" prints a "~".
> 
> Expected results:
> cursor jumps to the beginning or end of the line.
> -----------------------------------
> 
> I think, that this behavior is caused by using 'term=xterm' in config
> file. Problem is, that this line has to be in the config file,
> because it solves other, much worse problem.
> 
> Does anyone know, how to solve this without removing term=xterm?
> Thanks for your ideas.
> 
> Regards
> 
> Josef Ridky
> Associate Software Engineer
> Core Services Team
> Red Hat Czech, s.r.o.
> 
> 

Hi,

yes, this may behave the way you describe, because terminfo entries for
those terms are different

On my system:
% infocmp xterm| grep 'khome\|kend'
 kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
% infocmp screen| grep 'khome\|kend'
 kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
 khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE,

Notice that khome and kend are different.

You may also compare escapes generated by those keys between outside
and inside of screen by typing 'Ctrl+v, home' and 'Ctrl+v, End'.

To fix this you can try adding something like this to your screenrc
termcapinfo xterm @7=\E[4~:kh=\E[1~

(magic letters are from 'man terminfo')


Btw, what worse problem does it solve?

BR,
Amadeusz



reply via email to

[Prev in Thread] Current Thread [Next in Thread]