Как переопределить (украсить) встроенную функцию рыбы - PullRequest
0 голосов
/ 11 февраля 2019

Я хотел бы заставить замолчать 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 Ответ

0 голосов
/ 11 февраля 2019

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

Вы этого не сделаете.

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

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

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

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

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

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

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

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

Или выможет отключить вывод __fish_move_last s в prevd и nextd, или отключить эти .

Любая форма переопределения произвольных битов функций выглядит так, как если бы они были more error- не менее.

...