Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15681 > unrolled thread

Re: No way to 'bind -x' symbolic character names

Started byChet Ramey <chet.ramey@case.edu>
First post2019-11-30 12:24 -0500
Last post2019-11-30 12:24 -0500
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: No way to 'bind -x' symbolic character names Chet Ramey <chet.ramey@case.edu> - 2019-11-30 12:24 -0500

#15681 — Re: No way to 'bind -x' symbolic character names

FromChet Ramey <chet.ramey@case.edu>
Date2019-11-30 12:24 -0500
SubjectRe: No way to 'bind -x' symbolic character names
Message-ID<mailman.3.1575138610.1979.bug-bash@gnu.org>
On 11/30/19 9:57 AM, Dennis Williamson wrote:
> On Fri, Nov 29, 2019, 10:40 AM Nikolaos Kakouros <nkak@kth.se> wrote:
> 
>> Using bash version:
>>
>> GNU bash, version 5.0.11(1)-release (x86_64-pc-linux-gnu)
>>
>>
>> Trying to map Backspace to execute a function, I try to do:
>>
>> bind -x '"Rubout": my_func'
>>
>> This, as expected, binds the string 'Rubout' to the function. Omitting the
>> double quotes makes bind fail. Escaping, like `\Rubout`, works neither.

The answer below, using the standard "\C-?" notation to denote DEL, is the
right one. The symbolic character names were deprecated a number of years
ago. They only work with old APIs.

>> This is important in the case of Backspace, as there is no (to my
>> knowledge) other way to bind the backspace than using Rubout. Using Konsole
>> as my terminal emulator, `C-v Backspace` prints `^?` which I haven't
>> managed to use with bind.
>>
> 
> Backspace is a terminal setting which has precedence. You have to first
> undefine it.
> 
> stty erase undef
> bind -x '"\C-?":my_func'

The `stty erase under' might be overkill, since it affects all programs
using that terminal.

Readline binds the terminal special characters if the variable
`bind-tty-special-chars' is set, and it's set by default. You could unset
that instead of disabling the stty erase character binding.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web