需求
Mathematica 的前端设计使得它调试程序的过程与 MATLAB 截然不同,但在下面的这些情境中,增加 清屏、清除变量、显示所有变量 的命令要方便不少:
- 将 MMA 当做计算器的
- 从其他语言转至 MMA 的
- 过程式编程
增加方法
打开 $UserBaseDirectory
中的 /Kernel/init.m
,该文件为用户自定义初始化文件,每次启动 MMA 时执行。
- Windows 下位于
%HOMEPATH%\AppData\Roaming\Mathematica\Kernel\init.m
- macOS 下位于
~/Library/Mathematica/Kernel/init.m
- Linux 下位于
~/.Mathematica/Kernel/init.m
该文件默认只有一行:
(** User Mathematica initialization file **)
在该文件中加入以下代码:
System`clear:=Remove["`*"]
System`clc:=Module[{obj},
obj=EvaluationCell[];
SelectionMove[obj,All,Notebook];
NotebookDelete[];
$Line=0;
]
System`reset:=Module[{},
System`clear;
System`clc]
System`who:=Quiet[Information["`*"],{Information::nomatch}]
System`whos:={#,ToExpression[#]//InputForm//ToString}&/@Names["`*"]//Grid[#,Frame->All,Background->{{LightBlue,LightYellow},None},Alignment->{{Right,Left},Center}]&
保存后重启 MMA 即可开始使用新增的命令。
命令说明
clear
清除当前上下文中所有变量。
clc
清屏,即清空当前笔记本中所有内容。
reset
清屏并清除所有变量,相当于 clear + clc。
who
显示所有已定义的变量名称,可双击名称查看对应的值,相当于 ?"`*"
whos
以表格方式显示所有已定义的变量名称与对应的值。
感谢
脚本是在一位名为“苹果”的前辈写的初始化脚本的基础上修改的,当时他的脚本中还有:
SetAttributes[Derivative, Protected]
用于保护 Derivative[ ] 函数,建议也一并添加。
由于年代久远,已经找不到具体出处,在此向他表示感谢。