如何在 MATLAB 编辑器中重新格式化代码?

问题描述 投票:0回答:4

如何在 MATLAB 编辑器中重新格式化代码? 其他 IDE 通常具有重新格式化或格式选项来安排写入代码的位置。 MATLAB编辑器有吗? 我使用 MATLAB R2013a

matlab editor code-formatting
4个回答
25
投票

我创建了一个简约的、可配置的 MATLAB 源代码格式化程序,可以直接在 MATLABEditor 中使用。

您可以在 GitHub 上找到它:GitHub 上的MBeautifier

主要特点:

  • 用空格填充运算符和关键字
  • 可配置的缩进字符和级别。使用 MATLAB 编辑器的智能缩进功能进行缩进
  • 删除/添加连续空行
  • 在矩阵和元胞数组初始化中插入缺失的元素分隔符(逗号)
  • 在矩阵和元胞数组初始化中插入缺失的连续符号行
  • 内嵌连续线
  • 格式化 MATLAB 编辑器的当前页面或仅格式化 MATLAB 编辑器或文件中的选定内容
  • 虽然上述所有内容都可以在单个 XML 文件中进行配置

可用于R2013b以上的Matlab版本。

GitHub 上描述了部署和配置(上面的链接)。


21
投票

Matlab 编辑器的一些默认格式化快捷方式 - 假设是 Windows

ctrl+A - 选择全部
ctrl+I - 智能索引
ctrl+= - 全部折叠(循环控制语句)
ctrl+shift+= 全部展开(循环控制语句)
ctrl+] - 增加缩进
ctrl+[ - 减少缩进
ctrl+J - 评论换行


Matlab 编辑器的其他有用键盘快捷键

ctrl+R - 注释掉所选内容(向所有选定的行添加前导%)
ctrl+T - 取消注释选择(从所选行中删除前导%)
ctrl+K - 删除行(从插入符删除到行尾,如果行为空则删除换行符)
ctrl+M - 查看或展开当前消息
ctrl+F1 - 显示功能提示


可以在“首选项”>“键盘”>“快捷方式”中找到或定义其他快捷方式

最后要特别提及

...
的续行...
示例:

[output1,output2,output3]=calltoafunctionwithlotsofinputs(...
    intput1, input2, input3, input4, input5, ...
    'property1', propertyvalue1, ...
    'property2', propertyvalue2)

2
投票

虽然没有满足您问题的“在编辑器中”部分,但还有另一个 MATLAB 样式检查器/代码格式化程序:https://github.com/florianschanda/miss_hit


0
投票

这是一个 MATLAB 片段,它依赖于未记录的 tree2str 和 mtree,但产生了合理的结果:

tree2str(mtree(FILENAME, '-file', '-comments'))

您可以将以下命令放入最喜欢的命令中,并指定键盘快捷键来格式化当前编辑器页面。

currentEditorPage = matlab.desktop.editor.getActive();
if isempty(currentEditorPage)
  return
end
selectedPosition = currentEditorPage.Selection;
currentEditorPage.Text = tree2code(mtree(currentEditorPage.Text, '-comments'));
% Set back the selection
if ~isempty(selectedPosition)
  currentEditorPage.goToLine(selectedPosition(1));
end
currentEditorPage.makeActive();
© www.soinside.com 2019 - 2024. All rights reserved.