[Top][All Lists]

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

Bind builtin does not run readline commands

From: fargred
Subject: Bind builtin does not run readline commands
Date: Tue, 27 May 2014 09:19:18 +0400

Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: x86_64-pc-linux-gnu-gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu' 
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
-DHAVE_CONFIG_H   -I. -I./include -I. -I./include -I./lib  
-DSYS_BASHRC='/etc/bash/bashrc' -DSYS_BASH_LOGOUT='/etc/bash/bash_logout' 
-fomit-frame-pointer         --param l1-cache-size=32         --param 
l1-cache-line-size=64         --param l2-cache-size=6144
uname output: Linux home 3.13.10-geek-i5 #2 SMP PREEMPT Wed May 21 23:26:16 MSK 
2014 x86_64 Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz GenuineIntel GNU/Linux
Machine Type: x86_64-pc-linux-gnu

Bash Version: 4.2
Patch Level: 45
Release Status: release

        The syntax of the ‘bind’ builtin command suggests that any readline 
command may be executed just by passing command name to the ‘bind’ in 
accordance with ‘man bash’. However,

    bind shell-expand-line

    Doesn’t seem to be working, as well as alias-expand-line or 
history-and-alias-expand-line. Strange bug is, after executing the command 
above the lowercase ‘l’ cannot be typed into terminal (That doesn’t 
affect uppercase ‘l’ or letters on the other layout). No, I do not have any 
aliases like ‘l’, it stops working even if you
 start a new shell with an empty environment

    env -i bash --noprofile

    and then run

    unalias -a

    in it.


    Add the following code to the ~/.bashrc:

        alias expand_me='Alias was expanded!'
        testing_bind_builtin() {
                shopt -s expand_aliases # to be sure
                bind shell-expand-line
        [ -v TESTING_BIND ] && bind -x '"\C-m":"testing_bind_builtin"'

        Now call an instance of your favourite terminal emulator to test it…

        $ export TESTING_BIND=t; <your favourite terminal emulator>

        …and type the alias name (‘expand_me’) followed by Enter key or 
C-m. Alias should be expanded, but it doesn’t.

reply via email to

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