0

我正在尝试在 Eclipse 中构建我的自定义命令。这是我正在使用的 Eclipse 插件:https ://marketplace.eclipse.org/content/startexplorer

它看起来像这样(图片链接):

Eclipse 中的自定义命令

我需要自定义命令中的 eclipse 变量:

${resource_loc} , ${selected_resource_loc} , ${workspace_loc} , etc...

它应该是这样的:

D:\cygwin64\bin\mintty.exe /bin/bash -l -c "cd ${workspace_loc}"

但是 mintty 会立即关闭这个窗口。我需要基于 eclipse 变量执行命令进入 bash 交互模式,而不关闭窗口。

4

1 回答 1

2

要创建一个 StartExplorer 自定义命令,该命令会打开 Cygwin 终端并在所选资源的文件系统位置启动交互式 Bash shell,请执行以下步骤:

  1. 确保安装chere Cygwin 包;
  2. 安装StartExplorer Eclipse 插件;
  3. 在插件 StartExplorer 的 Eclipse Preferences 中,创建一个新的自定义命令:
    • 命令:D:\cygwin64\bin\mintty.exe -e /bin/xhere /bin/bash "${selected_resource_loc}"
    • 为资源启用:yes
    • 资源菜单名称:Cygwin Bash Here
    • 资源类型:Folders

作为步骤 2 和 3 的替代方法,如果您不关心上下文菜单条目,则无需安装 StartExplorer 插件。EclipseExtenal Tools Configuration标准特性可以解决问题。

Run > Extenal Tools Configuration中,创建一个新程序:

  • 姓名:Cygwin Bash Here
  • 地点:D:\cygwin64\bin\mintty.exe
  • 论据:-e /bin/xhere /bin/bash "${selected_resource_loc}"

基本上,xhere脚本(chere包的一部分)执行以下步骤:

  1. 向登录 shell 指示不要cd $HOMEexport CHERE_INVOKING=true在 中检查/etc/profile);
  2. 更改为作为第二个参数 ( ) 传递的目录cd "$2"
  3. 执行作为登录 shell ( exec -l $1) 的第一个参数传递的 shell。

注意:如果替换/bin/bash/etc/passwd,则使用当前用户读取的登录 shell/etc/passwd而不是bash.

于 2016-12-09T15:35:18.437 回答