#shell #fish
#оболочка #fish
Вопрос:
Я пытаюсь настроить завершение Fish shell для своего проекта.
Следуя некоторым руководствам, я добавил следующую строку в свой ~/.config/fish/config.fish
:
complete -x -c j -a '(shonenjump --complete (commandline -t))'
В котором shonenjump
указано имя исполняемого файла моего проекта и j
является функцией оболочки, обертывающей двоичный файл.
Я не могу заставить завершение работать, но если я повторю эту команду во вновь созданном сеансе, это сработает.
Есть идеи, как сделать это правильно?
Ответ №1:
При настройке подобных завершений файл завершения не помечается как загруженный, поэтому после этого fish все равно попытается автоматически загрузить файл завершения.
И есть файл завершения для вещи под названием «j», поставляемый с fish, и он явно удаляет уже настроенные завершения, что обычно не требуется, но, судя по сообщению о фиксации, этот инструмент устанавливает неработающие завершения, так что это исправляет их.
Итак, как только вы нажимаете tab, fish загружает этот файл, который стирает ваши завершения и устанавливает свои собственные.
Способ настроить завершение в fish — создать свой собственный файл завершения под названием «j.fish» в вашем каталоге ~/.config/fish/completions/.
Или, поскольку ваш инструмент — это не тот же «j», который, по-видимому, также известен как «autojump», просто назовите его как-нибудь по-другому.
Комментарии:
1. Да, я сам это выяснил и исправил своими
j.fish
силами: github.com/suzaku/shonenjump/commit /…