Добавить привязку к рыбе, которая не автоматически выполняет строку?

Как настроить привязку ключа в fish, чтобы рыба понимала, что не следует выполнять строку привязки после добавления ее в командную строку, а просто добавлять ее как строку в командную строку.

Я хочу установить привязку, которая добавляет | less нажав т.е. Alt + Y.

Похоже, что по умолчанию fish понимает команду для автоматического выполнения.

Т.е. когда я печатаю ls в командной строке, а затем нажмите Alt + Y, он только должен завершить команду, чтобы выглядеть так ls | less но все еще не выполняет его.

я пытаюсь что-то вроде этого

bind \ey " \| less"

Но рыба не принимает мой синтаксис

1 ответ

Решение

Чтобы добавить |less в конец командной строки, это уже функция по умолчанию в fish с использованием Alt-p

http://fishshell.com/user_doc/index.html

Вы можете создать функцию, чтобы сделать это, если вы предпочитаете:

function __fish_less
       commandline -i -- "|less"
end

bind \ey __fish_less

Я не уверен, если вам нужно избежать | сделать несколько тестов...

РЕДАКТИРОВАТЬ:

Относительно добавления, справка командной строки говорит:

* -a or --append do not remove the current commandline, append the specified string at the end of it
* -i or --insert do not remove the current commandline, insert the specified string at the current cursor position
* -r or --replace remove the current commandline and replace it with the specified string (default)

Таким образом, чтобы добавить вместо вставки команды, я думаю, вы должны использовать -a

Другие вопросы по тегам