我正在Windows 7和openSUSE Leap 15上运行IntelliJ 2018.3。
在Windows 7下,我已将IntelliJ配置为使用Git Bash,即在Settings的Tools -> Terminal下,将Shell path设置为:

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

IntelliJ的新功能之一是能够保存和重新加载终端 session (请参阅this link)。

它与openSUSE完美配合,但是,在Windows上,虽然正确还原了终端选项卡的名称,但我总是以新的Shell结尾。

有没有一种方法可以使IntelliJ和Git Bash很好地配合使用,以便在重新启动IntelliJ之后可以保留当前的工作目录和Shell历史记录?

最佳答案

这是一个可能的解决方法。它受到VonC's answer以及question that he mentioned的其他答案的启发很大。
〜/.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,除非我明确调用exitlogout;不幸的是,由于此限制,.bash_logout变体不足以解决上述情况。
上面的解决方法也将小的垃圾文件保留在__INTELLIJ_COMMAND_HISTFILE__父目录中,但是,我无法做得更好。
另外,我已经在Jetbrain的问题跟踪器中打开a ticket。有许多不同的 shell 可以从官方支持中受益。如果JetBrains最终能够支持powershell和像windows-subsystem-for-linuxcygwingit-bash这样的流行终端,那就太好了。当前对我来说唯一可用的 shell 是cmd

关于windows - 如何设置IntelliJ来记住 session 之间的Git Bash当前工作目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54217482/

10-15 10:26