Как переопределить (украсить) встроенную функцию рыбы

Я хотел бы заставить замолчать printf который находится в строке 9 /usr/share/fish/functions/__fish_move_last.fish потому что я нахожу это раздражающим.

Как я могу сделать это, не копируя всю функцию?

Если я просто скопировать файл в ~/.config/fish/functions/ и комментарий 9, я могу разбить вещи, когда оригинальная функция будет обновлена ​​в новой версии.

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

functions -c __fish_move_last __fish_move_last_ORIG

function __fish_move_last
    __fish_move_last_ORIG $argv >/dev/null
end

Но если я помещу этот фрагмент в ~/.config/fish/functions/__fish_move_last.fishЯ получаю эту ошибку:

fish: Не удалось автоматически загрузить элемент '__fish_move_last', он уже загружается. Это циклическая зависимость в скриптах автозагрузки, пожалуйста, удалите ее.

Я попытался явно загрузить исходную функцию в начале файла, чтобы избежать автозагрузки, но это не помогло устранить ошибку:

source /usr/share/fish/functions/__fish_move_last.fish

functions -c __fish_move_last __fish_move_last_ORIG

function __fish_move_last
    __fish_move_last_ORIG $argv >/dev/null
end

Какой правильный подход здесь?

1 ответ

Как я могу сделать это, не копируя всю функцию?

Вы не

Решение, действительно, состоит в том, чтобы скопировать всю функцию.

Я мог сломать вещи, когда оригинальная функция обновляется в новом выпуске.

Теоретически это возможно. Однако в данном конкретном случае последние изменения были

  • переформатирование, в ноябре 2016 года

  • изменение символа "..." на многоточие ("…") в июле 2016 года

  • удаление пробелов в 2010

Так что я думаю, что вы в безопасности.

Если вы все еще беспокоитесь об этом, вы также можете скопировать эту функцию и все, что от нее зависит (я бы предположил, prevd и nextd).

Или вы могли бы заставить замолчать __fish_move_lastВывод s в prevd и nextd или молчание тех.

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

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