【问题标题】:How to convert MATLAB code segment to single line?如何将 MATLAB 代码段转换为单行?
【发布时间】:2015-06-15 11:59:11
【问题描述】:

我正在寻找一种方法来转换多行代码,例如:

for i=1:10
    foo();
end

到这个:

for i=1:10, foo(); end

在 MATLAB 编辑器中是否有一种简单的方法可以做到这一点?最好是可逆的?

我想我几天前不小心按下了键盘快捷键,看到了神奇的发生,但我找不到我按了哪些键 :)

感谢您的帮助!

附:我不确定这个问题是否属于超级用户,但我相信我可以在这里找到一个快速的答案,并且它会与编程相关,所以双赢!

【问题讨论】:

  • 也许您应该澄清您希望 Matlab 编辑器 为您执行此操作
  • @LuisMendo 我编辑了这个问题。谢谢。顺便说一句,我也会接受 Notepad++ 扩展或宏。但我想相信有一种 MATLAB 方法可以做到这一点。
  • 制作这样的ViM宏很容易...

标签: matlab ide code-formatting


【解决方案1】:

我很确定您无法在 MATLAB 中完成此操作,至少不能在 MATLAB 编辑器中使用键盘快捷键。我不想说你在想象,但我认为你在想象。

我猜你可能做过的最接近的事情是折叠当前代码部分,使用 Ctrl-. 折叠当前部分或 Ctrl-+ 折叠当前文件中的所有部分。这可能看起来有点像您看到的,主循环块消失了,取而代之的是 for i = 1:10 和一个带有三个点的矩形 - 当您将鼠标悬停在矩形上时,循环主体将显示为工具提示。

如果这确实是你所做的,那么它是可逆的 Ctrl-Shift-.(对于当前部分)或 Ctrl-Shift-+(适用于所有部分)。顺便说一句,这些快捷方式是默认设置,可以在首选项中进行自定义,您需要在首选项中打开代码折叠。

但是,正如您在另一条评论中提到的,代码折叠不会改变代码本身,只会改变它的外观;所以这并不能真正准确地捕捉到您所描述的内容。

我能想象到的唯一其他相关的键盘快捷键是智能缩进 (Ctrl-I)。这会对代码进行一些智能缩进,但又不是您在此处描述的内容。

【讨论】:

  • 谢谢,尽管这是个坏消息 :) 我很确定我看到了代码(包括“for”之后的部分)但是是的,也许我在想象。好吧,让我再等几天,说不定会出事。
【解决方案2】:

这样写就行了:

for i=1:10, foo();, end

(注意 foo(); 后面的逗号)

但您可能只是在 for 之前点击 + 或 -,这会扩展或折叠“for”代码序列。

如果您进入“视图”选项卡,还有用于展开折叠的按钮,可以用来做同样的事情。

【讨论】:

  • 不,我是用键盘做的。而且我认为展开/折叠不会改变代码本身。
  • 如果已经有; 来终止语句(同时抑制控制台输出),则foo() 之后的, 不是必需的。要么就是……
猜你喜欢
  • 2022-12-30
  • 2016-05-17
  • 2011-03-27
  • 2017-08-13
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多