通过命令行获取tab-size

时间:2012-05-30 13:59:27

标签: preferences matlab

是否有自动检索matlab编辑器和命令窗口的选项卡大小的方法?是的,您可以打开首选项窗口并自行查找,但我想让它自动化。实际上我认为这可以推广到在下面的屏幕截图中检索这些用户首选项中的任何

enter image description here

1 个答案:

答案 0 :(得分:7)

我很快就找到了解决方案,在深入思考之后,最好分享这个链接:

http://undocumentedmatlab.com/blog/changing-system-preferences-programmatically/

所以你要做的是:

  1. 打开首选项文件并查找您要阅读的首选项:

    edit(fullfile(prefdir,'matlab.prf'));
    

    就我而言,行CommandWindowSpacesPerTab=I4EditorSpacesPerTab=I4看起来很有希望。我认为我代表的是类型(整数)。

  2. 通过加载值来测试它:

    com.mathworks.services.Prefs.get<type>Pref(<pref-name>)
    

    就我而言:

    >> com.mathworks.services.Prefs.getIntegerPref('EditorSpacesPerTab')
    ans =
    
        4
    
  3. 此问题也有一些小的重叠:Saving settings in matlab

    编辑:显然,使用此功能时,它不会读取首选项的默认值。即:当您尚未更改首选项的值时,该值不会保存到首选项文件中,因此无法以这种方式加载。函数只返回0.现在,我正在手动检测这种情况:

    if loadedpref==0
        set default
    end
    

    EDIT2:我也在linux命令行中使用matlab,它有自己的标签设置(通常默认为8)。为了检测这种情况,我使用了以下内容:

    function retval = isCommandWindowOpen()
        jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
        retval = ~isempty(jDesktop.getClient('Command Window'));
    end