在MATLAB编辑器中,您可以使用向上/向下箭头键滚动各行,也可以使用页面向上/向下按钮在页面间跳转。
但是,有没有办法让我一次滚动10行?或者其他一些可编程的行数?我以为我可以用CTRL键来做这件事,但这似乎不起作用……
谢谢。
发布于 2013-10-23 06:04:33
如果您使用的是Windows,则可以使用滚轮设置(在Control Panel、Mouse的选项卡Wheel中
Roll the wheel one notch to scroll:
The following number of lines at a time: 10发布于 2013-10-24 12:45:16
这里有一个由两部分组成的解决方案,让你选择任何你想要的热键和滚动量。我们将首先创建一个函数,jumpscroll,它将插入符号移动任意行数,保持其列位置不变:
function jumpscroll(n)
editor = com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor;
line_col = editor.positionToLineAndColumn( editor.getCaretPosition );
editor.goToLine( line_col(1)+n, line_col(2) )Matlab键盘快捷键不具备调用随机函数的灵活性,但Yair Altman的EditorMacro基本上解决了这一缺陷。该函数使用3个参数调用:组合键、按下这些键时要执行的操作以及宏/快捷键的类型。有关细节,请查看内部函数文档。
在命令窗口中运行,以下行将jumpscroll(n)添加到箭头键('UP'/'DOWN')和数字键盘箭头(KB_UP/KB_DOWN)的键集(ctrl+shift+up/down)。
n = 10; % number of lines to move up or down
EditorMacro('shift ctrl pressed UP', {@jumpscroll,-n}, 'run');
EditorMacro('shift ctrl pressed KP_UP', {@jumpscroll,-n}, 'run');
EditorMacro('shift ctrl pressed DOWN', {@jumpscroll, n}, 'run');
EditorMacro('shift ctrl pressed KP_DOWN', {@jumpscroll, n}, 'run');现在,更改跳过的行数或组合键非常简单。不幸的是,键绑定仅在当前的Matlab会话中持续存在,并且必须在每个新会话中重新加载。理想情况下,这些代码行应该放在startup.m中,但这会导致EditorMacro在编辑器句柄完全加载之前尝试访问它的问题。所以..。似乎有必要在启动Matlab后手动运行这些行。如果谁有更好的想法,请回复!
这个解决方案的两个部分都依赖于Matlab的一些隐藏的内部,在未来的版本中可能会崩溃。Yair解释了EditorMacro以及它在UndocumentedMatlab.com上做得很好的原因。(我发现他的工具uiinspect对于理解足够多的编辑器对象以编写jumpscroll.)
这最后一节是对林斌的回答的评论,但我还没有S.O.的声誉来真正把它放在那里。
如果你使用的是Windows,键盘宏程序AutoHotkey可以解决鼠标问题。在许多其他功能中,它允许您通过按键来控制鼠标滚轮。而且,您可以通过按一次键来模拟n次滚轮单击,而不是将鼠标滚轮属性设置为滚动更大的量。Mac/Linux可能也有类似的东西。
https://stackoverflow.com/questions/19523830
复制相似问题