尽管存在种种缺点,我通常更喜欢在 Matlab IDE 中工作,而不是在外部编辑器中工作(因为这样更容易调试、运行等等)。
但是有时我想在外部文本编辑器中打开当前文件。我可以这样做:右键单击文件选项卡;在 Finder 中显示;在编辑器中打开文件,但对于大多数情况来说这实在是太多了。
我想要的是指定一个可以与当前选定的文件一起启动的外部编辑器。
是否有内置方法可以实现这一点?
如果没有,Matlab IDE 本身是否可以编写脚本,这样我可以编写一个脚本,然后为其分配快捷方式吗?
(免责声明:我已经在 Google 上搜索过 - 没有找到任何东西)
答案1
您可以使用 macopen 函数从 matlab 打开该文件(如果您使用的是 Windows:则使用 winopen):
function macopen(file)
% Opens a file or directory, as if executing at the Terminal
% Manu Raghavan
% August 19, 2009
if(nargin==0 || nargin>1 || ~ischar(file))
error('Please specify at one input argument, file or directory, to be opened');
end
if(~ismac)
if(ispc)
error('macopen does not work on Windows, use winopen instead');
else
error('macopen does not work on other operating systems');
end
end
system(['open ',file]);
来源:http://www.mathworks.com/matlabcentral/fileexchange/25080-macopen/content/macopen.m 作者:http://www.mathworks.com/matlabcentral/fileexchange/authors/31269
答案2
感谢 Vincent 介绍我system
。我的解决方案主要针对我自己(所以没有什么花哨之处),但您可以随意调整以适应您选择的编辑器。
编辑:请注意,此解决方案包含未记录的功能。如果我没记错的话,matlab.desktop.editor.getActive().Filename;
它从 2009 年左右开始起作用,至少在 2013a 年的 OSX 上起作用
function subl(varargin)
% Opens the currently active tab of the matlab editor in sublime text
% (assuming OSX, and that subl is found on the system $PATH).
% Adam Andersen Læssøe; Feb. 2014.
%
% Input:
% varagin{1} (if supplied) is passed directly to the subl call as a string
% for a list of args see eg. www.sublimetext.com/docs/3/osx_command_line.html
% Result:
% (). subl is called with the args followed by the path to the currently
% active file in the matlab editor.
% Example usage: (opens the currently active editor tab in sublime text in
% a new window)
% subl -n
file = matlab.desktop.editor.getActive().Filename;
if nargin
args = varargin{1};
else
args = '';
end
%args = '';
system(['subl ', args, ' ', file]);
答案3
您可以从 matlab 命令行在操作系统中运行编辑器。
就像是
!emacs filename.m