为了configure a user binding(版本2.2.0),它必须位于fish_user_key_bindings
函数中:
function fish_user_key_bindings
bind \n 'commandline -f accept-autosuggestion execute'
end
这很好用。
我想通过使用appropriate modifier将此绑定扩展为 Ctrl + Enter :
function fish_user_key_bindings
bind \c\n 'commandline -f accept-autosuggestion execute'
end
这不起作用: Enter 使用当前(直到光标)建议(这是默认设置)但是 Ctrl + Enter < / kbd>以及(好像没有考虑修饰符的动作)
答案 0 :(得分:3)
绑定\c\n
没有任何意义,因为\n
已经是控制字符。将控制修改器第二次应用于控制字符无效。由于\n
只是\cJ
的别名,因此您尝试执行的操作相当于绑定到\c\cJ
。绑定[Ctrl] [Enter]的唯一方法是将终端配置为发送该组合键的唯一序列。
PS,如果你抓住当前的git head源代码,你可以make fish_key_reader
构建一个方便的程序,它会显示很多关于不同键发送的信息(虽然你需要等待一些从我输入这个时间开始的几分钟,因为我需要合并https://github.com/fish-shell/fish-shell/pull/3012)。
PPS,从鱼2.3.0(目前处于测试阶段)开始,tty驱动程序不再自动将输入密钥发送的\r
(又名\cM
)转换为\n
(又名\cJ
)。
答案 1 :(得分:0)
我认为您需要以下内容:
bind \cf accept-autosuggestion execute
或以下(如果已安装vi模式)
bind -M insert \cf accept-autosuggestion execute