2016-05-09 35 views
0

为了configure a user binding(2.2.0版本)时,它必须在fish_user_key_bindings功能:如何在鱼中绑定Ctrl-Enter?

function fish_user_key_bindings 
    bind \n 'commandline -f accept-autosuggestion execute' 
end 

这工作得很好。

我想扩大这种结合按Ctrl + 输入,通过使用appropriate modifier

function fish_user_key_bindings 
    bind \c\n 'commandline -f accept-autosuggestion execute' 
end 

这不起作用:输入使用电流(高达光标移动)的建议(这是默认值)但是Ctrl + 输入以及(好像没有考虑修饰符的动作)

+1

不是所有的终端都能区分enter和ctrl-enter。你使用哪个终端应用程序? –

+0

@ridiculous_fish:我在putty/kitty和mobaxterm上都试过 – WoJ

回答

2

绑定\c\n没有任何意义,因为\n已经是控制字符。第二次将控制修饰符应用于控制字符不起作用。由于\n只是\cJ的别名,所以您试图执行的操作相当于绑定到\c\cJ。绑定[Ctrl] [Enter]的唯一方法是配置终端为该组合键发送唯一序列。

PS,如果你抓住当前的git头源,你可以make fish_key_reader建立一个方便的程序,它会告诉你很多关于不同的密钥发送的信息(尽管你需要等待几分钟键入这个因为我需要合并https://github.com/fish-shell/fish-shell/pull/3012)。

P.P.S.,鱼2.3.0(目前处于测试阶段)的tty驱动不再自动转换\r(又名\cM)了输入键发送到\n(又名\cJ)。