2016-08-10 5 views
1

Я сделал ошибку, поставив амперсанд (&) в имя каталога. Я переименовал папку, но теперь каждый раз, когда я изменить каталог печатает сообщение об ошибке:Ошибка синтаксиса в завершении пути Shell Shell

complete: Completion '[A list of directories' path]' contained a syntax error. Expected an argument, but found a '&' 

Я не знаю, где эти пути доработки сохраняются. Я посмотрел в папки, перечисленные в списке $fish_complete_path без везения ...

Эта проблема должна быть легко исправить, только я не знаю, где искать ...

ответ

0

У меня также был установлен рыбак. Я удалил OMF, удалил файлы рыбаков и плагины (у меня был z и установил). Теперь это работает. Не уверен, какой именно из них был виновником.

1

вы видите поведение потому что есть eval где-то, кто оценивает строку, которая не была должным образом экранирована. В этом случае это будет функция __fish_complete_cd. Который в рыбе 2.2.0 фактически использовал eval небезопасно. Что касается рыбы 2.3.0, она больше не делает этого, что означает, что вы можете безопасно использовать амперсанд в имени каталога.

Обычно я рекомендую открыть отчет об ошибке в https://github.com/fish-shell/fish-shell/issues с максимально возможной детализацией, включая версию рыбы, в которой вы работаете (echo $FISH_VERSION), и шаги по воспроизведению проблемы. Однако в этом случае мы уже исправили ошибку, поэтому все, что вам нужно сделать, это обновить установку вашей рыбы. Пока вы не сможете сделать это, вы сможете «исправить» ближайшую проблему, просто запустив новую оболочку: exec fish.

+0

Я пользуюсь рыбами 2.3.1. Кроме того, запуск новой оболочки не решает проблему (я несколько раз перезагружал свой компьютер). Если это имеет значение, у меня установлен OMF ... –

+0

OMF отправляет несколько завершений, которые иногда вызывают проблемы. Я бы предложил удалить пути OMF из $ fish_complete_path, чтобы узнать, не вызвали ли они это. – faho

Смежные вопросы