2016-05-09 3 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 

Это не работает: Enter использует текущий (до курсора) предложение (который является значением по умолчанию) , но Ctrl + Введите (как если бы действие с модификатором не было учтено)

+1

Не все терминалы различают ввод и ctrl-enter. Какое приложение терминала вы используете? –

+0

@ridiculous_fish: Я пробовал это как на шпатлевке/котенке, так и на mobaxterm – WoJ

ответ

2

Связывание \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).

P.P.S., Как рыбы 2.3.0 (в настоящее время в бета-тестировании) водитель терминал больше не будет автоматически преобразует \r (ака \cM), что ввести ключ посылает \n (ака \cJ).

Смежные вопросы