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

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

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

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

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

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

bind \ey " \| less"

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

1
задан 2 November 2011 в 02:44

2 ответа

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

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

Вы можете создать функцию для этого, если хотите:

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

bind \ey __fish_less

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

EDIT:

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

* -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

2
ответ дан 25 May 2018 в 23:39
  • 1
    попробовал, что, хорошая идея, но проблема также в том, что функция, которая кажется «войти», выполнить в конце командной строки и автоматически выполнить его. возможно, когда я хочу сделать привязку для | grep это не должно выполняться напрямую, так как мне еще нужно добавить строку поиска в цитату в конец строки? – NES 4 January 2011 в 20:10
  • 2
    обновлено (надеюсь) решение – tmow 4 January 2011 в 20:15
  • 3
    спасибо, попробовал. но получите следующее сообщение об ошибке: переключатели режима ввода не могут использоваться, если они не находятся в режиме ввода. Кроме того, насколько я понимаю, это может быть проблемой при использовании bind в fish с другим вариантом, поскольку он всегда пытается выполнить его, а не просто добавляет строки в строку? – NES 4 January 2011 в 20:28
  • 4
    Я думаю, вы правы. Давайте посмотрим, будет ли кто-нибудь еще в качестве решения, иначе лучше всего спросить у парня, который развил рыбу (а затем вернуться сюда с ответом). – tmow 4 January 2011 в 20:33
  • 5
    ах, заставил его работать. возможно, вы можете обновить свой ответ, поэтому я их приму. проблема в вашем примере - это синтаксис. есть недостающие цитаты, поэтому оболочка интерпретирует командную строку в вашей функции как трубку из двух разных команд. Он должен выглядеть как эта командная строка -a - " | меньше & Quot; – NES 5 January 2011 в 00:31

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

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

Вы можете создать функцию для этого, если хотите:

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

bind \ey __fish_less

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

EDIT:

Что касается append, подсказка в командной строке говорит:

* -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

2
ответ дан 6 August 2018 в 04:11

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

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