这可能很困难,因为显然 JetBrains 为多个产品使用相同的配置基础架构。我知道它适用于 PyCharm,但我无法检查是否同样适用于 GoLand,因为我没有使用它。假设它适用于其余的答案。
您感兴趣的每个项目设置存在于.idea
项目目录的子目录中,由多个产品使用/共享。从.idea 文件夹是什么?:
解决方案根目录中的.idea文件夹(在 OS X 上隐藏)包含 IntelliJ 的项目特定设置文件。其中包括每个项目的详细信息,例如 VCS 映射和运行和调试配置,以及每个用户的详细信息,例如当前打开的文件、导航历史记录和当前选择的配置。
在这种情况下,分离 2 个 IDE 的设置的一种可能方法是根据需要制作.idea
目录的 2 个不同副本以进行符号链接.idea
,具体取决于正在使用的 IDE。
请注意,以下示例基于 Linux,可能需要针对 Mac 进行一些调整。
例如,要运行 PyCharm:
project_dir> rm -f .idea; ln -s .idea_pycharm .idea
project_dir> ls -ld .idea*
lrwxrwxrwx 1 username at 13 Apr 19 13:05 .idea -> .idea_pycharm
drwxrwxr-x 2 username at 4096 Apr 19 13:03 .idea_goland
drwxrwxr-x 2 username at 4096 Apr 19 13:03 .idea_pycharm
project_dir> pycharm&
并运行 GoLand:
project_dir> rm -f .idea ; ln -s .idea_goland .idea
project_dir> ls -ld .idea*
lrwxrwxrwx 1 username at 12 Apr 19 13:06 .idea -> .idea_goland
drwxrwxr-x 2 username at 4096 Apr 19 13:03 .idea_goland
drwxrwxr-x 2 username at 4096 Apr 19 13:03 .idea_pycharm
project_dir> goland&
为了更加方便,您还可以(以 root 身份)重命名相应的可执行文件并使用原始名称创建包装脚本,这将自动执行此操作(您必须从相应的项目目录中调用它们)。这些方面的东西:
# mv /usr/local/pycharm-5.0.6/bin/pycharm.sh /usr/local/pycharm-5.0.6/bin/pycharm.sh.orig
# vi /usr/local/pycharm-5.0.6/bin/pycharm.sh
# chmod a+x /usr/local/pycharm-5.0.6/bin/pycharm.sh
# cat /usr/local/pycharm-5.0.6/bin/pycharm.sh
#!/bin/sh
if [ -d .idea_pycharm ]; then
rm -f .idea
ln -s .idea_pycharm .idea
ls -ld .idea*
fi
exec /usr/local/pycharm-5.0.6/bin/pycharm.sh.orig "$@"
笔记:
- 该方案总体上仅在一次运行一个 IDE 时有效,如果在启动第二个 IDE 时仍然运行,第一个可能会受到损害
- 包装器仅对启动它们的项目目录有效,如果其他项目同时打开,它们将不会更新其符号链接