2

我正在尝试从终端打开 kdiff3 并将两个本地文件作为 kdiff3 的参数传递(不在 git repo 中)。Kdiff3 我用作 git diff 工具,它可以很好地比较我当前的版本和 repo head 版本。但是,当我使用本地文件(不在 git repo 中)作为来自终端的参数运行 kdiff3 时,会出现问题,然后我收到一条错误消息,提示FSPathMakeRef(local_kdiff_path/kdiff3.app ) failed with error -43.仅供参考,kdiff3.app 路径位置与我为 git diff 工具或别名。我尝试了两种方法,但没有一种方法有效:

alias kd2='open -a "local_kdiff_path/kdiff3.app" $1 $2'
alias kd3='sudo open -a "local_kdiff_path/kdiff3.app/Contents/MacOS/kdiff3" $1 $2'

请建议我如何解决这个问题?

4

1 回答 1

2

问题是您在您定义的路径bash script.bash_profile找不到应用程序位置。尽管该参数在 Linux 或 Windows 中很容易访问,但对于特定于 mac 的脚本有点不同。

MAC OS-X 解决方案

如下创建一个简单的 bash 脚本并提供参数

kdiff_installed_folder/kdiff3.app/Contents/MacOS/kdiff3 "$1" "$2" "$4"

Linux 解决方案

在 .bashrc 或 .aliases 文件中添加以下命令

alias kd '/app/kdiff3/0.9.96/RHEL64/kdiff3'
alias kd1 '/app/kdiff3/0.9.96/RHEL64/kdiff3 $1' 
alias kd2 '/app/kdiff3/0.9.96/RHEL64/kdiff3 $1 $2' 

视窗解决方案

如果安装Git-bash在 .bashrc 文件中添加以下行

alias kd='"C:/Program Files/KDiff3/kdiff3.exe"'
alias kd1='"C:/Program Files/KDiff3/kdiff3.exe" $1'
alias kd2='"C:/Program Files/KDiff3/kdiff3.exe" $1 $2'
于 2015-11-24T01:03:15.587 回答