我想要做的很简单:使用readline启动文件inputrc为我的程序之一添加一个键绑定,但是,由于我的程序没有产生任何输出,我不希望命令名出现在stdout上。
我的问题是:
.inputrc内容:
"\e[1;5A":'pipe_send\n'
当我按下ctrl + uparrow时,会出现命令行" pipe_send":
[ alexkag@$$$$$:: / ]
$ pipe_send
我喜欢的不是pipe_send
出现在命令行上,就像readline提供的命令一样,例如history-search-backward,history-search-forward等。
你知道怎么办?也许shoudn我使用readline?注意:我的键绑定只能在bash中显示,而不能在整个系统中显示。
答案 0 :(得分:0)
正如gniourf_gniourf的评论所述,解决方案是:
bind -x '"\e[1;5A":pipe_send'
只要按下某个键, bind -x
就会告诉bash执行命令:
-x keyseq:shell-command
导致在输入keyseq时执行shell命令。执行shell-command时,shell将READLINE_LINE变量设置为Readline行缓冲区的内容,将READLINE_POINT变量设置为插入点的当前位置。如果执行的命令更改了READLINE_LINE或READLINE_POINT的值,则这些新值将反映在编辑状态中。
\e[1;5A
是为 Ctrl Up 发送的终端代码