То, что вы не осознали или временно забыли, это то, что у рыб PATH
на самом деле является массивом.Это не отдельная строка каталогов, разделенная двоеточиями, как в bash.А в рыбе, когда вы объединяете массив в другую строку, вы получаете декартово произведение.Допустим, вы сначала сделали export PATH=/dir1:/dir2
(используя нотацию bash).В рыбах, эквивалентных set -gx PATH /dir1 /dir2
, массив var с двумя элементами.Теперь сделайте это
for x in PATH=$PATH:/dir3
echo $x
end
Как вы думаете, что будет отражено?Это будет отражено:
PATH=/dir1:/dir3
PATH=/dir2:/dir3
И именно поэтому ваш PATH
теперь более или менее бесполезен при входе в систему.
Ошибки связаны с вашей функцией fish_prompt
, поскольку она можетне найти ни одной из команд, необходимых для создания вашего приглашения.Но вы все равно должны иметь возможность вводить команды.Попробуйте установить свой путь в здравом уме.Просто скопируйте / вставьте это:
set -gx PATH /bin /usr/bin /usr/local/bin
Это должно сделать большинство команд, которые вы используете, снова доступными.Если вашего редактора нет в одном из этих каталогов, включите его каталог.Теперь у вас должна быть возможность редактировать файл config.fish .
PS, не используйте команду export
в fish.Это просто функция, которая действует как тонкая оболочка вокруг set
.В конечном итоге вам будет лучше научиться делать это по-рыбному.