2015-12-31 1 views
2

В zsh была опция для автоматического переключения каждого посещенного каталога в стек каталога (setopt auto_pushd), представленный dirs. Я просто переключился на рыбу и понял, что такой опции по умолчанию нет. Также при попытке доступа к dirs он просто заполняется токовым выходом pwd. Есть ли возможность разрешить такое поведение у рыб?стек каталогов оболочки для рыбы

Конечно, была бы возможность написать собственную функцию cd для вызова pushd каждый раз, когда вы входите в папку, но поскольку я также переключаю каталоги, просто используя путь как команду, которая была бы не такой полезной ,

Так что в принципе я могу вызвать функцию каждый раз, когда изменился текущий рабочий каталог?

ответ

4

Вы можете запустить функцию каждый раз, когда изменяется каталог, например так:

function myfunc --on-variable PWD 
    echo Changed! 
end 

Однако! fish cd по умолчанию является оболочкой функций, которая управляет стеком каталогов. (Вы можете увидеть его кишки, запустив functions cd.)

Вы можете использовать prevd и nextd для перемещения назад и вперед по истории вашего каталога. Существует также стенограмма cd -, чтобы перейти к последнему каталогу, в котором вы были.

+0

Хорошо, это звучит хорошо. Да, я знаю эти функции, но в моей прежней установке zsh у меня были числовые ключи, сопоставленные с последними каталогами в истории. – hGen

+0

рыба поддерживает сопоставление ключей с помощью 'bind', поэтому вы должны иметь возможность реплицировать это. Подробнее см. «Man bind». –

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