Mathematica 7中Un/Comment out代码的键盘快捷键?

dbj*_*ohn 11 wolfram-mathematica keyboard-shortcuts commenting mathematica-frontend

注释/取消注释一段代码的键盘快捷键在其他编程IDE中常用于Java,.Net等语言.我发现它是一种非常有用的技术,在通过试验和错误进行实验时,可以暂时注释掉并取消注释代码的行,单词和部分,以找出什么是无效的.

我在版本7的Mathematica前端找不到任何这样的键盘快捷键.我知道可以通过选择代码注释掉代码,单击鼠标右键并从出现的菜单中选择取消/注释但这太慢了编码.

我尝试使用键盘上的菜单键 访问它,Menu但Mathematica前端不响应或识别此键与其他应用程序不同,这可能允许用于评论的组合键.其他人可以验证这不是我的机器所独有的,并且mathematica无法识别该密钥.我查看了这个问题并查看了KeyEventTranslations.tr文件,但我认为没有办法创建一个快捷方式来执行此操作(?).我应该忍受它吗?

还有其他建议吗?

(我已经看到有一个Emacs版本的mathematica,我从来没有尝试过Emacs或者这个Mma版本,并且想象它会有这种能力但是不想去安装它的麻烦和不确定性.我也猜想Wolfram Workbench可以做到这一点,但这可能不值得投资.)

WRe*_*ach 14

如果您愿意编辑Mathematica系统文件,可以在Mathematica 7.0.x中安装快捷方式MenuSetup.tr.您可以在与KeyEventTranslations.tr文件相同的位置找到它(即在"SystemFiles/FrontEnd/TextResources/platform " 下的安装中).在MenuSetup.tr,在编辑菜单的定义下找到以下行:

MenuItem["Check &Balance", "Balance", MenuKey["B", Modifiers->{"Control", "Shift"}]],
Run Code Online (Sandbox Code Playgroud)

紧接在该行下方,插入以下内容:

MenuItem["Un/C&omment Selection", KernelExecute[FE`toggleComment[]], MenuKey["/", Modifiers->{"Command"}], MenuEvaluator -> Automatic, Method -> "Queued"],
Run Code Online (Sandbox Code Playgroud)

现在," 编辑"菜单下的" 取消/注释选择"命令可以使用键盘快捷键- 或- 取决于您的平台 - 就像预装此命令的Mathematica 8中一样.Cmd/Alt/

请阅读关于黑客入侵Mathematica安装文件的通常免责声明 - 不提供保修:)

我不知道有任何方法将此函数映射到涉及Menu密钥的某些快捷方式.

快捷键,无菜单

前面的步骤通过安装新的菜单项来模仿Mathematica 8的功能.如果您希望保持菜单不变,则可以安装快捷方式KeyEventTranslations.tr.添加以下行:

Item[KeyEvent["/", Modifiers->{Command}], KernelExecute[ToExpression["FE`toggleComment[]"]], MenuEvaluator -> Automatic, Method -> "Queued"]
Run Code Online (Sandbox Code Playgroud)

如果它不是列表中的最后一项,则在该行的末尾需要一个逗号.

  • +1这对我有用.对于其他任何尝试它的人,您将需要关闭并重新启动mathematica以使命令可用. (2认同)
  • @Mr它将在`KeyEventTranslations.tr`中工作,但你必须将命令包装在`ToExpression`中,就像在`ContextMenus.tr`中一样. (2认同)
  • @Mr`MenuEvaluator`和`Method`似乎像`Button`的`Evaluator`和`Method`选项一样.与`Button`不同,这些映射文件上下文中的默认赋值器似乎是前端,因此`MenuEvaluator - > Automatic`似乎将表达式推送到内核.`方法` - >"排队"似乎是一种防御措施,以防大量代码注释需要很长时间.我说"似乎"很多,因为这都是猜测. (2认同)

Mr.*_*ard 7

这是您的KeyEventTranslations.tr文件代码,用于注释掉代码.我还在为另一半工作.

Item[KeyEvent["/", Modifiers -> {Command}],
    FrontEndExecute[{
        NotebookApply[FrontEnd`InputNotebook[],
            "(*\[SelectionPlaceholder]*)"
        ]
    }]
], 
Run Code Online (Sandbox Code Playgroud)

这将它与Mathematica 8中的Alt+ 绑定在一起/.


Bru*_*rio 7

选择代码并按以下其中一项:

  • Alt + /
  • ALT-EO
  • ALT + E + O

笔记:

  • 仅在Windows上使用Mathematica 8进行测试.
  • 在我的非美国键盘(ABNT Brazil)上,快捷键Alt + /不起作用,而是使用Alt + E + O.