Как настроить IntelliJ для запоминания текущего рабочего каталога Git Bash между сессиями? - PullRequest
0 голосов
/ 16 января 2019

Я использую IntelliJ 2018.3 в Windows 7, а также openSUSE Leap 15. Под Windows 7 я настроил IntelliJ для использования Git Bash, то есть в настройках в разделе Tools -> Terminal, я устанавливаю Shell path в:

C:\Program Files (x86)\Git_2.17.1\bin\bash.exe

Одной из новых функций IntelliJ является возможность сохранять и перезагружать сеансы терминала (см. эту ссылку ).

Он отлично работает с openSUSE, однако в Windows, хотя имена вкладок терминала правильно восстановлены, я всегда получаю новую оболочку.

Есть ли способ, чтобы IntelliJ и Git Bash хорошо играли вместе, чтобы я мог сохранить текущий рабочий каталог и историю оболочки после перезапуска IntelliJ?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Вот возможный обходной путь. Он был сильно вдохновлен ответом 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 мог в конечном итоге поддерживать и популярные реализации , такие как , и . Единственная оболочка, которая в настоящее время работает из коробки для меня, это .

0 голосов
/ 20 января 2019

Вы можете попробовать установить Git для Windows bash на запомнить последний использованный для вас путь, как показано в " Как я могу открыть новый терминал в том же каталоге, что и последний использовавшийся один из оконного менеджера keybind?"

Например:

Таким образом, вместо сохранения пути при каждом вызове cd, последний путь может быть сохранен при выходе.

Мой ~/.bash_logout очень прост:

echo $PWD >~/.lastdir

И где-то в моем .bashrc я разместил эту строку:

[ -r ~/.lastdir ] && cd $(<~/.lastdir)

Это зависит не от Intellij IDEA напрямую, а от базовой настройки bash (здесь Git для Windows bash упоминается и используется Intellij IDEA.

...