【问题标题】:Is there a way around using [[ and ]] for Part in Mathematica?有没有办法在 Mathematica 中使用 [[ 和 ]] 作为 Part 吗?
【发布时间】:2011-11-11 17:56:44
【问题描述】:

有没有办法避免使用⋮[[⋮ 来获得Part 的那些漂亮的括号?

有没有办法在你运行一个函数或定义后自动完成?

【问题讨论】:

标签: wolfram-mathematica frontend


【解决方案1】:

我在/Applications/Mathematica.app/SystemFiles/FrontEnd/TextResources/Macintosh/KeyEventTranslations.tr 中添加了以下内容,可让我输入带有组合键的双括号。您可以通过修改文件(在您的操作系统上的任何位置)来执行相同的操作。我首先从Szabolcs's 网站here 了解到这一点。他那里有其他数学相关的东西可能对你有帮助。

添加的命令有:

  • Ctrl+[
  • 使用 Ctrl+]
  • 〚〛 使用 Ctrl+Alt+]

KeyEventTranslations.tr 文件中列出的等效项是:

修饰符可以是“Shift”、“Control”、“Command”、“Option”

对于 Macintosh:“Command” = 命令键,“Option” = 选项键

对于 X11:“命令”= Mod1,“选项”= Mod2

对于 Windows:“Command” = Alt,“Option” = Alt

在上述文件的EventTranslations[{之后插入以下内容。

(* Custom keyboard shortcuts *)
    Item[KeyEvent["[", Modifiers -> {Control}],
        FrontEndExecute[{
            FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
                "\[LeftDoubleBracket]", After]
        }]],
    Item[KeyEvent["]", Modifiers -> {Control}],
        FrontEndExecute[{
            FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
                "\[RightDoubleBracket]", After]
        }]], 
    Item[KeyEvent["]", Modifiers -> {Control, Command}],
        FrontEndExecute[{
            FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
                "\[LeftDoubleBracket]", After],
            FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
                "\[RightDoubleBracket]", Before]
        }]], 

你不是唯一一个被它激怒的人。 Here's 我试图通过将 Caps lock 映射到 Esc 来避免必须拉伸以命中 Esc。巫师先生也有一个couplequestions[[ 的转换有关。

【讨论】:

  • 所以我需要将 Item[] 代码保存在上述位置吗?看起来很棒,但我无法实现它:(
  • @500 我忘了包括在哪里插入它。请看我的编辑。另外,备份文件。
  • 编辑很棒,感谢网站内容丰富!我已经决定在早上这样做;-)
  • yoda,在我的文件中,我有一个 [[]] 的 KeyEvent - 我可以将它添加到您的答案中吗?
  • @Mr.Wizard 当然,您可以添加它。我在 Mathgroup 网站上看到了您的解决方案,但在我写答案时忘记了。
【解决方案2】:

我的偏好如下(感谢 Sjoerd C. de Vries 修复了代码):

n = SelectedNotebook[];
SetOptions[n, 
 InputAliases -> 
  Append[Options[n, InputAliases][[1, 2]], 
   "[]" -> "\[LeftDoubleBracket]\[SelectionPlaceholder]\[RightDoubleBracket]\[Placeholder]"]]

这会添加一个新的输入别名⋮[]⋮,它会插入两个 [[]],将光标放在括号内的占位符上,并将另一个占位符放在您到达的括号外按 T​​ab 键。

试试看。如果你喜欢它,你可以将它添加到你的全局选项中:格式 -> 选项检查器 -> 显示选项值 -> 全局首选项 -> 搜索 InputAliases。

您也可以将其与 yoda 提出的键盘快捷键解决方案结合使用。

【讨论】:

  • 鉴于Options 的输出中有额外的 {} 层,它无法正常工作。像SetOptions[n, InputAliases -> Append[Options[n, InputAliases][[1, 2]], "[]" -> "\[LeftDoubleBracket]\[SelectionPlaceholder]\ \[RightDoubleBracket]\[Placeholder]"]] 这样的东西适合我
  • @SjoerdC.deVries 你的对我有用。您输入[[唯一 原因是如果您使用的是Part... 那么是否可以映射[[(不按Esc)以自动插入漂亮的括号和占位符?类似于 -> 如何自动转换为箭头。
  • @yoda 问题在于,对于右括号,Part 不是唯一可能产生]] 的东西,甚至不是最常见的。但是,拥有这样一个片面的捷径并没有让我觉得是一种美学解决方案。
  • @LeonidShifrin 是的,这就是为什么我问是否可以使仅输入[[(仅用于Part)自动导致放置整个东西 〚◼〛◻ 就像安德鲁的解决方案一样。如果您输入 ]],则不会发生任何事情。
  • @yoda 哦,我明白了。听起来是个不错的建议,特别是如果它很容易打开和关闭的话。
猜你喜欢
  • 1970-01-01
  • 2022-11-18
  • 2011-07-25
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多