Вот возможный обходной путь. Он был сильно вдохновлен ответом VonC , а также другими ответами на вопрос , который он упомянул .
~ / .bashrc
if [[ -v __INTELLIJ_COMMAND_HISTFILE__ ]]; then
__INTELLIJ_SESSION_LASTDIR__="$(cygpath -u "${__INTELLIJ_COMMAND_HISTFILE__%history*}lastdir${__INTELLIJ_COMMAND_HISTFILE__##*history}")"
# save path on cd
function cd {
builtin cd $@
pwd > $__INTELLIJ_SESSION_LASTDIR__
}
# restore last saved path
[ -r "$__INTELLIJ_SESSION_LASTDIR__" ] && cd $(<"$__INTELLIJ_SESSION_LASTDIR__")
fi
Мне не нравится тот факт, что мне пришлось обернуть команду cd
, однако Git Bash не выполняет ~/.bash_logout
, если я не вызову явно exit
или logout
; к сожалению, из-за этого ограничения вариант .bash_logout
не подходит для упомянутого сценария.
Обходной путь выше также оставляет небольшие ненужные файлы внутри __INTELLIJ_COMMAND_HISTFILE__
родительского каталога, однако, я не смог ничего сделать лучше.
Кроме того, я открыл тикет в системе отслеживания ошибок Jetbrain. Существует много различных оболочек, которые могут получить официальную поддержку. Было бы здорово, если бы JetBrains мог в конечном итоге поддерживать powershell и популярные реализации bash , такие как windows-subsystem-for-linux , cygwin и ГИТ-Баш . Единственная оболочка, которая в настоящее время работает из коробки для меня, это cmd .