ALT Linux Team development discussions
 help / color / mirror / Atom feed
* Re: [devel] Xterm #21731 -- ^H или ^?
  2010-09-21  8:43 [devel] Xterm #21731 -- ^H или ^? George V. Kouryachy
@ 2010-09-21  7:54 ` REAL
  2010-09-21  8:02 ` REAL
  2010-09-21 14:19 ` Sergey Vlasov
  2 siblings, 0 replies; 4+ messages in thread
From: REAL @ 2010-09-21  7:54 UTC (permalink / raw)
  To: ALT Linux Team development discussions

George V. Kouryachy пишет:
> Обсуждение можно не читать, суть такая, что в Linux xterm почему-то
> обязан при нажатии клавиши BackSpace возвращать не символ BackSpace
> (^H), а Delete (^?).
> 
> Это прописано в terminfo (см infocmp xterm): соответственно, экранные
> программы ожидают, что KBS будет ^?. Это устанавливается в терминальной
> линии (см. stty -a). Один только xterm не желает с этим считаться, и по
> умолчанию при нажатии на BaskSpace посылает BackSpace. Потому что так
> делается во всём цивилизованном мире :).

А мне нравится, что нажатие на BackSpace воспринимается как нажатие на 
  BackSpace. Может быть, не надо это менять? ;)

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] Xterm #21731 -- ^H или ^?
  2010-09-21  8:43 [devel] Xterm #21731 -- ^H или ^? George V. Kouryachy
  2010-09-21  7:54 ` REAL
@ 2010-09-21  8:02 ` REAL
  2010-09-21 14:19 ` Sergey Vlasov
  2 siblings, 0 replies; 4+ messages in thread
From: REAL @ 2010-09-21  8:02 UTC (permalink / raw)
  To: ALT Linux Team development discussions

George V. Kouryachy пишет:
> Разгребая баги (да-да, меня не было в этой реальности quite a lot)
> наткнулся вот на такую, доставшуюся мне по наследству вместе с XTerm.
> 
> https://bugzilla.altlinux.org/show_bug.cgi?id=21731
> 
> Обсуждение можно не читать, суть такая, что в Linux xterm почему-то
> обязан при нажатии клавиши BackSpace возвращать не символ BackSpace
> (^H), а Delete (^?).

Однако, глючу, почитав-таки обсуждение. У меня при нажатии никаких ^H 
не наблюдается, символ перед текущий позицией благоразумно исчезает.

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [devel] Xterm #21731 -- ^H или ^?
@ 2010-09-21  8:43 George V. Kouryachy
  2010-09-21  7:54 ` REAL
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: George V. Kouryachy @ 2010-09-21  8:43 UTC (permalink / raw)
  To: devel

Привет всем.

Разгребая баги (да-да, меня не было в этой реальности quite a lot)
наткнулся вот на такую, доставшуюся мне по наследству вместе с XTerm.

https://bugzilla.altlinux.org/show_bug.cgi?id=21731

Обсуждение можно не читать, суть такая, что в Linux xterm почему-то
обязан при нажатии клавиши BackSpace возвращать не символ BackSpace
(^H), а Delete (^?).

Это прописано в terminfo (см infocmp xterm): соответственно, экранные
программы ожидают, что KBS будет ^?. Это устанавливается в терминальной
линии (см. stty -a). Один только xterm не желает с этим считаться, и по
умолчанию при нажатии на BaskSpace посылает BackSpace. Потому что так
делается во всём цивилизованном мире :).

Способы лечения.
1. Нажимать вместо BaskSpace Ctrl+BaskSpace :)
2. stty erase=^H
3. Ctrl+левая кнопка мыши -> BackArrow key (BS/DEL)
4. Перебить системный ресурс backArrowKey, чтобы всегда был ^?
   Потеряется совместимость с другими системами
5. Перебить системный ресурс backarrowKeyIsErase, чтобы при старте
   XTerm-а backarrow принимала значение, равное stty-му erase.
   Потеряется совместимость с другими системами, появится момент
   неопределённости

Лично я за последний вариант. Мало ли что. А если кому-то хочется, чтобы
Erase был всё-таки ^H, используйте xterm -tn xterm-color, для него в
terminfo kbs=^H. А stty делайте сами :).

У меня стоит в .zshrc: stty erase `echotc kb`

Если никто не против, я попатчу app-defaults/XTerm.

-- 
			George V. Kouryachy (aka Fr. Br. George)
			mailto:george at altlinux_org


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [devel] Xterm #21731 -- ^H или ^?
  2010-09-21  8:43 [devel] Xterm #21731 -- ^H или ^? George V. Kouryachy
  2010-09-21  7:54 ` REAL
  2010-09-21  8:02 ` REAL
@ 2010-09-21 14:19 ` Sergey Vlasov
  2 siblings, 0 replies; 4+ messages in thread
From: Sergey Vlasov @ 2010-09-21 14:19 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 3519 bytes --]

On Tue, Sep 21, 2010 at 12:43:16PM +0400, George V. Kouryachy wrote:
> Разгребая баги (да-да, меня не было в этой реальности quite a lot)
> наткнулся вот на такую, доставшуюся мне по наследству вместе с XTerm.
> 
> https://bugzilla.altlinux.org/show_bug.cgi?id=21731
> 
> Обсуждение можно не читать, суть такая, что в Linux xterm почему-то
> обязан при нажатии клавиши BackSpace возвращать не символ BackSpace
> (^H), а Delete (^?).
> 
> Это прописано в terminfo (см infocmp xterm): соответственно, экранные
> программы ожидают, что KBS будет ^?. Это устанавливается в терминальной
> линии (см. stty -a). Один только xterm не желает с этим считаться, и по
> умолчанию при нажатии на BaskSpace посылает BackSpace. Потому что так
> делается во всём цивилизованном мире :).
> 
> Способы лечения.
> 1. Нажимать вместо BaskSpace Ctrl+BaskSpace :)
> 2. stty erase=^H
> 3. Ctrl+левая кнопка мыши -> BackArrow key (BS/DEL)
> 4. Перебить системный ресурс backArrowKey, чтобы всегда был ^?
>    Потеряется совместимость с другими системами
> 5. Перебить системный ресурс backarrowKeyIsErase, чтобы при старте
>    XTerm-а backarrow принимала значение, равное stty-му erase.

На самом деле поведение ещё зависит от ресурса ptyInitialErase: если
там false (как стоит по умолчанию), xterm читает данные terminfo для
указанного типа терминала и выполняет stty erase в соответствии с
прочитанным значением; если же поставить ptyInitialErase: true, xterm
читает настройки псевдотерминала в момент запуска и (при включении ещё
и backarrowKeyIsErase) устанавливает в соответствии с прочитанным
значением поведение клавиши BackSpace.

В Debian по каким-то причинам ставят оба ресурса:

http://patch-tracker.debian.org/patch/series/view/xterm/261-1/900_debian_xterm.diff

+! Debian package customizations follow.
+*backarrowKeyIsErase: true
+*ptyInitialErase: true

Однако, на мой взгляд, более правильное поведение - установка только
backarrowKeyIsErase: true, и оставление ptyInitialErase: false
(значение по умолчанию).  В этом случае xterm выполняет stty erase ^H,
если такое значение указано в данных terminfo для выбранного типа
терминала; в результате, например, в xterm -tn xterm-color -e sh
клавиша BackSpace работает ожидаемым образом, как и при использовании
обычного типа терминала xterm, несмотря на разные значения kbs для
этих типов.  (При использовании zsh у меня где-то принудительно
выставляется stty erase ^? даже для xterm-color, в результате
BackSpace ломается, но со стандартным типом xterm всё работает
правильно.)

>    Потеряется совместимость с другими системами, появится момент
>    неопределённости

Непонятно, с какими системами в данном случае нужно поддерживать
совместимость.  Вроде бы большинство реализаций эмуляторов терминала в
настоящее время по умолчанию используют вариант BackSpace = ^?; а вот
многие коммутаторы при управлении через telnet/ssh хотят ^H.

> Лично я за последний вариант. Мало ли что. А если кому-то хочется, чтобы
> Erase был всё-таки ^H, используйте xterm -tn xterm-color, для него в
> terminfo kbs=^H. А stty делайте сами :).

Если не трогать ptyInitialErase, и нет особо умных программ, даже stty
делать не понадобится - т.е., xterm -tn xterm-color -e <prog> для
запуска программы, требующей kbs=^H, будет сразу работать правильно.

> У меня стоит в .zshrc: stty erase `echotc kb`
> 
> Если никто не против, я попатчу app-defaults/XTerm.

Поддерживаю (а в крайнем случае ~/.Xresources никто не отменял).

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-09-21 14:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-21  8:43 [devel] Xterm #21731 -- ^H или ^? George V. Kouryachy
2010-09-21  7:54 ` REAL
2010-09-21  8:02 ` REAL
2010-09-21 14:19 ` Sergey Vlasov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git