GNU readline 将连续的字母数字视为单词,所有其他的都是非单词,比如-option1 -option2
有 4 个单词 ( " -", "option1", " -", "option2"
),这使得在移动光标时不直观。有没有办法自定义这个单词定义,比如将所有非空格字符都视为单词?
terdon
Asked:
2022-02-06 06:24:48 +0800 CST
Ethan
Asked:
2022-01-20 13:43:34 +0800 CST
从 libreadline 版本 8.1 开始,默认是对“括号粘贴”操作进行特殊处理。这会破坏我的程序的解析,所以我想禁用它。
我知道可以通过将此行添加到 /etc/inputrc 来全局禁用它
set enable-bracketed-paste off
我知道它可以通过将同一行添加到 ~/.inputrc 来禁用每个用户
我知道该命令可以通过将其修改为特定于程序
$if Progname
set enable-bracketed-paste off
$endif
但是,这些选项需要系统管理员或用户采取行动。我想让程序本身在进入时禁用此模式。readline 文档说rl_startup_hook is the address of a function to call just before readline prints the first prompt
。我认为这意味着下面的代码应该做我想做的事。
int my_readline_init(void) {
char *command = strdup("set enable-bracketed-paste off");
rl_parse_and_bind(command);
free(command);
}
rl_startup_hook = my_readline_init;
如果我在初始化例程中添加调试行或跟踪点,我可以看到它确实被调用了。但是(1)它在每个输入行上都被调用,而不仅仅是第一次,并且(2)它没有达到预期的效果。即它不会关闭括号粘贴处理。我究竟做错了什么?
nonokenak
Asked:
2021-11-03 07:06:53 +0800 CST
我们如何扩展一个变量,即。'$' 前面的名称,它在 bash readline 上的值内容?
paradroid
Asked:
2019-12-12 04:00:12 +0800 CST
您可以像这样Ctrl-Left绑定键:Ctrl-Right.inputrc
# Ctrl-Left
"\033[1;5D": backward-word
# Ctrl-Right
"\033[1;5C": forward-word
我将如何绑定Ctrl-Up并且Ctrl-Down什么都没有?
# Ctrl-Up
"\033[1;5A": null
# Ctrl-Down
"\033[1;5B": null
这显然是行不通的。
我使用这些键在 tmux(嵌套配置)中执行操作,但是;3~
当我使用其中任何一个键时,通常会输出到终端。
我希望我能够将它们绑定到任何东西,同时仍然让密钥适用于 tmux。
Felix Dombek
Asked:
2019-08-10 05:50:31 +0800 CST
ws_e_c421
Asked:
2019-05-11 19:59:43 +0800 CST
cevhyruz
Asked:
2019-04-27 04:55:08 +0800 CST
例如;
if [ 'readline is vi-command' ]; then
echo 'normal mode'
else
echo 'insert mode'
fi
我真的不知道如何做到这一点,我似乎也无法在手册页上找到任何东西,或者根本不可能?
Nicholas Cousar
Asked:
2019-03-01 20:52:20 +0800 CST
Tom Hale
Asked:
2018-12-10 18:08:36 +0800 CST