Matlab编辑器通过制表键提供了集成的代码完成功能。然而,这种补全的范围是整个Matlab路径,所以当匹配几个字符时,匹配的数量通常很大。另一方面,原生的Matlab代码补全有时限制太大,因为它只匹配顺序字符。我发现更灵活的匹配TextMate非常方便使用,例如字符串'fcn'可以完成为'function'。此宏的目的是提供这种更灵活的匹配算法,但范围仅限于当前文档。
要使用这个宏,你必须安装Yair Altman的EditorMacro,把这个文件(Matlab_Code_Completion_Macro.m)放在你的Matlab路径上,并添加以下行到你的启动。m文件:
macros = EditorMacro('ctrl-space',@Matlab_Code_Completion_Macro, 'run');
宏= EditorMacro('ctrl-alt-space',@Matlab_Code_Completion_Macro, 'run');
macros = EditorMacro('shift-ctrl-space',@Matlab_Code_Completion_Macro, 'run');
要使用宏,在Matlab编辑器中输入一个要补全的字符串,例如,
佛
要查找可能的补全,请按ctrl-space。
然后您将得到建议的代码完成
fo < <——{}
再次按ctrl-space将获得次优补全
fo < <——{函数}
再按ctrl-space
fo < <——{parfor}
按ctrl-shift-space,我们退回到前面的建议
fo < <——{函数}
这个补全是通过按ctrl-alt-space来选择的,因此我们得到
函数
现在插入号位于function关键字的末尾,我们再次按ctrl-alt-space并获得
函数(
现在我们可以输入一个变量列表
函数(y, z
再次键入ctrl-alt-space以获得
函数[y,z] =
输入函数名
函数[z,w] = f
再按ctrl-alt-space
函数[z,w] = f(
键入一个变量列表
函数[z,w] = f(x,y)
再按ctrl-alt-space
函数[z,w] = f(x,y)
例如,接下来可以输入函数体
函数[z,w] = f(x,y)
z = x + y;w = z-y;
(为了得到正确的缩进,你可能需要应用智能缩进,例如,通过快捷键ctrl-i)。最后,您可以再次使用ctrl-alt-space来获得end语句
函数[z,w] = f(x,y)
z = x + y;w = z-y;
结束
类似的补全也适用于if, elseif, for和while。
总之,我发现这个宏是对原生Matlab代码补全的有价值的补充,它为我节省了大量的输入和搜索变量和函数名的工作。
我希望它对你有用。享受吧!
引用作为
列夫·佩尔松(2022年)。matlab的智能代码完成(//www.tatmou.com/matlabcentral/fileexchange/25217-intelligent-code-completion-for-matlab), MATLAB中央文件交换。检索.