微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mathematica中的语法着色

如何解决Mathematica中的语法着色

| 用户定义的函数符号(例如f)如何在 f [x_] = 2 x 或诸如乐透中的可变符号 lotto = Table [2,{10}]; 自动上色? 在M8上的语法着色中,没有为此提供选项。 仅未分配值的局部变量或全局符号。     

解决方法

这并非您所要求的,但是对您可能有用。 您可以使用以下方法按上下文突出显示符号:
SetOptions[$FrontEndSession,AutoStyleOptions -> {\"SymbolContextStyles\" -> {\"highlight`\" -> Green}}
]

AppendTo[$ContextPath,\"highlight`\"];
现在,当您在上下文“ 1”中创建符号时,它将自动变为绿色:
highlight`lotto ;
并且由于在
$ContextPath
后面附加了
highlight`
,因此可以简单地使用该符号:
lotto
突出显示所有符号(变量) 如果要自动突出显示所有创建的符号,请设置:
$Context = \"highlight`\"
之后,您创建的所有新符号将属于上下文
highlight`
,并会接收颜色。 新的意思是那些以前没有在会话中使用过的,或者已经
Remove
。 在我看来,一种更好的方法来避免出现“阴影”问题,可能是针对“ 9”上下文本身设置突出显示。我没有考虑过这样做的后果,但仅此一项即可完成:
SetOptions[$FrontEndSession,AutoStyleOptions -> {\"SymbolContextStyles\" -> {\"Global`\" -> Green}}
]
使用技巧 上下文“ 1”是完全任意的,您可以使用不同的颜色突出显示多个上下文。 您可以为诸如color12之类的程序包上色,以区分哪些符号属于该程序包。     ,为这些变量分配值后,它们会自动着色。在默认的Mathematica设置下,
lotto
分配值后立即将颜色从蓝色变为黑色。严格来说,未分配的变量会根据您在“首选项” /“外观” /“语法着色” /“其他” /“全局”符号下未设置值的设置进行着色。 如果您正在寻找一种为唯一的定义是自己的值的全局符号分配不同颜色的方法,那么我认为您很不走运。据我所知,语法着色机制无法区分自身值(\“变量赋值\”),向下值(\“函数定义\”)和向上值(\“表达式部分定义\”) 。     ,正如我在上面的评论中所说,我认为很难完全自动化。您必须将ѭ14和ѭ15包装起来,以根据变量是创建OwnValue还是DownValue将变量自动移到正确的上下文中。 要手动执行此操作,只需对Mr.Wizard的先前工作进行简单的编辑...
SetOptions[$FrontEndSession,AutoStyleOptions -> {\"SymbolContextStyles\" -> 
                       {\"functions`\" -> Green,\"variables`\" -> Pink}}]
$ContextPath = Join[$ContextPath,{\"functions`\",\"variables`\"}]//DeleteDuplicates;

variables`x;
functions`f;
这是你想要的吗?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?