我正在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
,除非我明确调用exit
或logout
;不幸的是,由于此限制,.bash_logout
变体不足以解决上述情况。上面的解决方法也将小的垃圾文件保留在
__INTELLIJ_COMMAND_HISTFILE__
父目录中,但是,我无法做得更好。另外,我已经在Jetbrain的问题跟踪器中打开a ticket。有许多不同的 shell 可以从官方支持中受益。如果JetBrains最终能够支持powershell和像windows-subsystem-for-linux,cygwin和git-bash这样的流行终端,那就太好了。当前对我来说唯一可用的 shell 是cmd。
关于windows - 如何设置IntelliJ来记住 session 之间的Git Bash当前工作目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54217482/