在外部编辑器中打开当前文件

在外部编辑器中打开当前文件

尽管存在种种缺点,我通常更喜欢在 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

相关内容