给 Mathematica 增加 清屏/清除变量/列出所有变量 命令

需求

Mathematica 的前端设计使得它调试程序的过程与 MATLAB 截然不同,但在下面的这些情境中,增加 清屏、清除变量、显示所有变量 的命令要方便不少:

  1. 将 MMA 当做计算器的
  2. 从其他语言转至 MMA 的
  3. 过程式编程

增加方法

打开 $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[ ] 函数,建议也一并添加。
由于年代久远,已经找不到具体出处,在此向他表示感谢。

你可能感兴趣的:(给 Mathematica 增加 清屏/清除变量/列出所有变量 命令)