Как я могу сбросить каталог запуска на мой ДОМ в Fish?

В диспетчере рабочего стола я привязал fish к сочетанию клавиш Ctrl + ~. При запуске fish открывает каталог /usr/lib/lightdm/lightdm. Это довольно раздражает, потому что у меня нет дела с lightdm, и я обычно работаю над кодом в своем каталоге $HOME.

Как я могу изменить каталог, в котором начинается рыба? Я хотел бы изменить каталог запуска просто на ~/


person codysehl    schedule 14.04.2013    source источник


Ответы (3)


Я обнаружил, что файл config.fish, который запускается при запуске, меняет мой рабочий каталог по умолчанию.

Ошибочная попытка установить мой PATH оставила список каталогов в моем config.fish, первым из которых был /usr/lib/lightdm/lightdm. Fish автоматически предполагает, что каталоги без команды должны быть cd`введены в этот каталог, поэтому моя оболочка cd`входила в этот каталог при запуске.

Я убрала блуждающие строки, и все в порядке.

Чтобы изменить каталог запуска рыбы: добавьте cd /path/to/new/startup/directory в файл ~/.config/fish/config.fish или создайте его, если он не существует.

person codysehl    schedule 18.04.2013
comment
Нет, не делай этого! Если вы добавите cd к config.fish, он будет работать для повседневного использования, но fish также будет запускать cd перед запуском любого сценария оболочки Fish. Поэтому, если вы попытаетесь запустить скрипт с указанием пути относительно вашего текущего каталога, например fish hello.fish или ./hello.fish, вы получите сообщение об ошибке типа «hello.fish: Нет такого файла или каталога», если только вы уже не находитесь в указанном вами пользовательском каталоге. . - person Rory O'Kane; 11.05.2017
comment
Я хочу особо подчеркнуть слова codysehl: НЕ ДЕЛАЙТЕ ЭТОГО; выполнение cd перед каждой командой оболочки путем добавления ее в config.fish приводит к множеству проблем (например, vifm очень сильно испортился). Я выучил это трудным путем.. - person Ghost; 16.07.2017
comment
Может ли кто-нибудь дать лучший ответ, если это неправильно? - person Micah Zoltu; 25.08.2017
comment
stackoverflow.com/a/55730891/7683365 — правильный ответ, который не влияет на ваши скрипты или любой вызов команды оболочки из другая программа. - person Ajit; 05.04.2021

Как говорит @nathaniel-waisbrot в этом ответе, вы можете cd только при интерактивном запуске рыбы (оболочка, а не скрипты):

# ~/.config/fish/config.fish

if status is-interactive
  cd $HOME
end

Использование команды fish status

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

person M. Davis    schedule 17.04.2019

Хотя это и не имеет прямого отношения к вопросу ОП, но достаточно близко, чтобы мой поиск нашел эту тему. Поэтому я делюсь этим ответом с другими пользователями.

iTerm сохранит путь (вместе с вкладками, заголовками вкладок и макетом окна) на вкладке «Расположение». По-видимому, когда я установил расположение по умолчанию, у меня была открыта одна вкладка для /.

Я смог изменить это на все, что захочу, cding в мой домашний каталог и изменив расположение окон по умолчанию.

Я предполагаю, что если бы у вас не было расположения по умолчанию, параметр «Повторно использовать каталог предыдущего сеанса» работал бы для новых сеансов, но не работает для восстановленных расположений.

person Graham P Heath    schedule 30.06.2020