MATLAB编辑器中的自动换行

10

如何在MATLAB R2011b编辑器中换行脚本和函数的长行?

我不是指使用Ctrl+J来换行注释,而是像大多数文本编辑器那样,将一行长代码分成几行,每行(除了最后一行)宽度与编辑器框架相同,这样我就不需要水平滚动条;这种效果仅仅是视觉效果,并且它仍然作为文件的单行存在。

我在任何菜单、工具栏或首选项对话框中都找不到设置。

虽然我可以使用“…”将该行拆分成多个行,但我不想这样做。我希望在文件中保持它作为一行,只是显示为换行格式,就像Windows记事本中的格式>自动换行。


1
MATLAB的编辑器有3个非常有用的功能,我希望Notepad++也具备:1. 在滚动条旁突出显示所选变量的每个出现次数;2. 通过指向其名称来显示变量内容的工具提示;3. 自动重命名变量(类似于Visual Studio)http://blogs.mathworks.com/desktop/2011/09/12/variable-and-function-rename/ - Gnubie
(1) m-x occur:执行“m-x occur”命令 (2) ..好吧,emacs无法处理这个 :O (3) m-x replace-string:执行“m-x replace-string”命令。我已经使用带有matlab-mode的emacs相当长一段时间了,我很喜欢它。 - Dang Khoa
1
首先,请注意我没有贬低MATLAB的意图 :) 关于(1),据我所读,m-x occur会打开一个新缓冲区,列出包含给定字符串的行。相比之下,MATLAB的编辑器在滚动条旁边有一个垂直条,突出显示它们的出现次数(类似于http://blogs.mathworks.com/images/desktop/michael_katz_eml/eml_editor.png中的橙色水平刻度线)。关于(3),它只替换变量名中的字符串(按预期),还是也替换字符串和注释? - Gnubie
你在回答这个问题方面有进展吗?如所述,除非有权威人士说您想要的在Matlab中根本无法实现,否则似乎无法回答。我同意其他帖子的建议,建议您清理代码(花费太多时间是一个很差的借口,特别是当您的替代选择是使用我的时间),或者找到更适合您需求的编辑器。 - Richard
换句话说,你的问题和评论定义了一个非常狭窄的范围,以至于回答无法提供替代解决方案。由于人们往往不会处理绝对事实(即“它无法完成”),因此这个问题很可能找不到符合您要求的答案。 - Richard
1
@Richard:谢谢您的评论。我还没有找到在MATLAB编辑器中自动换行的方法。虽然我的问题有一个狭窄的范围,但我认为这是Stack Exchange推荐的。即使答案是“无法实现”,我认为提出这样的问题是公平的。如果后来证明它可以做到,我不会对答案进行贬低。很抱歉您认为我的推理是一个不好的借口,但是无论我的原因是什么都不在问题的范围内。例如,我是要救生命还是仅仅出于好奇心询问并不会使问题更加或更少有效。 - Gnubie
2个回答

2
这可以通过使用三个点...来实现。例如:
Hc_frame_1 = uicontrol(gcf, ...
'Style', 'frame',...
'Units', 'pixels',...
'Position', [25 250 200 230]);

这三个点告诉MATLAB在下一行继续执行命令。如果没有它们,MATLAB会认为该命令不完整。

4
抱歉,我不想将一条逻辑行物理上分成不同的部分。我希望在脚本中保持它为一行,但在编辑器中显示为换行,类似于Windows记事本中的格式>自动换行。 - Gnubie
@Gnubie - 你有没有停下来考虑过为什么你需要这个功能呢?如果你有一些需要换行的长行代码,那么你应该考虑重构一下代码,让这些行变得更短。 - Dang Khoa
10
(1) 我继承了许多长脚本,修复长行很麻烦。 (2) 它可以让我在调试过程中使用 Ctrl-R 和 Ctrl-T 快速注释和取消注释某一行。使用块,则需要选择整个块,并确保没有多余或少于所需的行被选中。 - Gnubie
1
我也想要这个功能,即使没有其他原因,有时我屏幕空间有限,希望能够在一个宽度为40个字符的窗口中阅读代码。通过 ... 进行硬换行是完全错误的。 - Carl Witthoft

1
编辑器中没有办法包装一般文本。
可以设置为仅对注释进行包装。

1
非常古老的相关问题:https://superuser.com/questions/327497/can-i-make-the-matlab-text-editor-wrap-text-at-a-given-column-width-without-impl - cladelpino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接