Ctrl-enter для рыбной раковины

586
Michael

Я пытался создать некоторое принятие и выполнить сразу комбинацию в рыбе при нажатии Ctrl+ Enter.

function fish_user_key_bindings bind \c\n accept-autosuggestion execute end 

К сожалению, эта попытка не удалась. Похоже, рыба не любит два сбежавших персонажа:

#bind -a ... bind \\ c \\ n accept-autosuggestion execute 

Есть идеи получше?

1

2 ответа на вопрос

1
Kurtis Rader

Binding ctrl+enter doesn't make any sense. The enter key normally sends a carriage-return; \r, aka \cM. In other words, enter is already a control character. So applying the \c modifier does’t make any sense. In fact, this should cause Fish to generate an error so I’ll open an issue to remind the team to fix that.

Also, you were trying to bind \c\n. Binding \n (aka \cJ) works for Fish 2.2.0 or earlier. But as of 2.3.0 you won’t get the expected result because fish now disables the TTY driver’s icrnl mode. So Fish will receive the \r (aka \cM) character normally sent by the enter key. So you really want to bind \r (or \cM). Of course that doesn’t change the fact that that \c\cM doesn’t make any sense.

[Github, выпуск 3162] (https://github.com/fish-shell/fish-shell/issues/3162), открытый для отслеживания улучшающих рыбу предупреждений о выполнении бессмысленных вещей, таких как применение модификатора `\ c` к элементу управления. персонаж. Kurtis Rader 7 лет назад 0
0
Hastur

Возможно, вы пропустили только ''командную строку bind.

На самом деле простое bind \c\n accept-autosuggestion executeгенерирует ошибку:

bind: ожидаемый ноль или два параметра, получил 3

Добавление ''вокруг команды, кажется, работает

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

После выполнения команды связывания с bind -aдает мне

bind \ x1cn 'accept-autosuggestion execute'

Ну, просто попробуйте без выполнения в конце. Ctrl-return просто не распознается, что бы вы ни ставили в конце. Также цитирование \ c \ n не поможет. И когда я просто выбираю любую другую комбинацию, например, \ cn, она также работает без кавычек обеих команд. Michael 8 лет назад 0
@Michael Мне нужно было процитировать _composite command_, потому что `bind` хочет 0 или 2 параметра, а когда 2, второе - действие. Вы можете проверить в `bind -a`. Я не могу ответить сейчас, если вы можете связать Ctrl Enter. Я пытался связать как действие `'эхо; эхо; echo '`ctrl-a, и это работает. Пожалуйста, добавьте версию рыбы, которую вы используете ... Hastur 8 лет назад 0
Я использую 2.2.0. Опять же, \ cn или \ ca что угодно, у меня работает нормально, используя qouting для команд или нет, команда выполняется. Может быть, ваша версия устарела здесь? В любом случае, связывать ctrl-a и ссылаться на это бессмысленно, я специально говорю о \ c \ n. Michael 8 лет назад 0
Я использую последний доступный для Ubuntu LTS (2.0.0) обновленный и установленный этим утром только для вашего вопроса. Кстати проблема с ``это зависит от используемого вами терминала: некоторые терминалы отправляют``когда``нажата. Некоторые другие `<^ M>` как для простого ``. См. [1] (http://stackoverflow.com/a/598404/3569208) и [2] (http://unix.stackexchange.com/a/63887/66388). Проверьте свой терминал, возможно, внутри bash с ``и после``и`` Hastur 8 лет назад 0
Downvote без каких-либо комментариев ИМХО бесполезны ... По крайней мере, дайте нам знать, что вы думаете, это неправильно или неясно ... Hastur 7 лет назад 0

Похожие вопросы