Visual Studio 2015/TFS 中的 MATLAB 文件关联
MATLAB File Association in Visual Studio 2015 / TFS
我在 Visual Studio 2015 年使用 TFS,对 MATLAB 文件关联有疑问。对于 .m
个文件,没有与 MATLAB 的关联,如下所示:
令人困惑的是,.fig
和 .mat
文件存在关联,因此 VS 必须识别 MATLAB "exists"。如果我双击其中一种文件类型,它将在 MATLAB 中打开它,就像在资源管理器 window 中一样。这是我想要 .m
个文件的行为。
至少,我希望 .m
文件有 MATLAB 图标,以便在目录中轻松找到它们。作为理想的解决方案,这些文件也可以在 TFS 的 MATLAB(而不是 VS 文本编辑器)中打开。
我已经尝试了选项 > 文本编辑器中的 "File Extension" 选项,但 MATLAB 在编辑器列表中不适合我。
值得注意的是,我的工作网络对软件安装非常严格,因此外部加载项越少越好(理想情况下 none)。赞赏建议。
如果我没理解错的话,你是想把MATLAB和VS整合起来(看来你的问题和TFS无关)。
Visual Studio 没有这样的扩展名,但是 MatLab extension for Visual Studio Code。
============================================= ============================
从评论来看,您似乎想在 MATLAB 中使用 team explore 来启用 Team Foundation Version Control 的集成使用。恐怕您的要求暂时无法实现。 MATLAB 不支持团队资源管理器或 TFS MSSCCI Provider。
我在下面的网站提交了一个用户的声音,你可以投票:
我经常使用一个实用工具来解决与 MATLAB 相关文件的 OS 级关联问题 - associateFiles from FEX.
你可能应该用 associateFiles('deleteadd','.m')
调用它,这将生成一个名为 MatlabFileAssocFix.reg
的注册表文件,其中包含以下内容(显然 MATLAB 路径是根据你的系统生成的):
Windows Registry Editor Version 5.00
;FIXES MATLAB FILE ASSOCIATIONS
;REMOVES M FILE ASSOCIATIONS
[-HKEY_CLASSES_ROOT\.m]
[-HKEY_CLASSES_ROOT\MATLAB.m.9.1.0]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m]
;ADD SHELL OPEN
[HKEY_CLASSES_ROOT\Applications\MATLAB.exe\shell\open\command]
@="\"C:\D\Program Files\MATLAB\R2016b\bin\win64\MATLAB.exe\" \"%1\""
;ADD M FILE ASSOCIATIONS
[HKEY_CLASSES_ROOT\.m]
@="MATLAB.m.9.1.0"
"Content Type"="text/plain"
"PerceivedType"="Text"
[HKEY_CLASSES_ROOT\.m\OpenWithProgids]
"MATLAB.m.9.1.0"=""
[HKEY_CLASSES_ROOT\.m\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\.m\Versions\MATLAB.m.9.1.0]
"FileVersionMS"=dword:00090001
"FileVersionLS"=dword:00000000
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0]
@="MATLAB Code"
"FriendlyTypeName"="@C:\D\Program Files\MATLAB\R2016b\bin\win64\matlab.exe,-58"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\DefaultIcon]
@="C:\D\Program Files\MATLAB\R2016b\bin\win64\m.ico,0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open]
@="Open"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\command]
@="\"C:\D\Program Files\MATLAB\R2016b\bin\win64\matlab.exe\""
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec]
@="uiopen('%1',1)"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec\application]
@="ShellVerbs.Matlab.9.1.0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec\topic]
@="system"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run]
@="Run"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\command]
@="\"C:\D\Program Files\MATLAB\R2016b\bin\win64\matlab.exe\""
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec]
@="run('%1')"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec\application]
@="ShellVerbs.Matlab.9.1.0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec\topic]
@="system"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m\OpenWithProgids]
"m_auto_file"=hex(0):
"MATLAB.m.9.1.0"=hex(0):
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m\OpenWithList]
"a"="MATLAB.exe"
"MRUList"="a"
导入此文件时,它会删除 .m
存在的任何关联并将其与 MATLAB 关联。
我不知道这是否适用于您的问题,但我认为应该提及。
请注意:MATLAB 是用 Java 编写的,而不是基于 NET 或 Visual Studio 扩展,因此如果我们尝试将 MATLAB 编辑器作为插件打开,这目前不是一个好主意。
现在要编辑 .m 文件,您必须定义文件类型的新(外部)默认编辑器。
如果没有 MATLAB 许可证,请使用 Notepad++、Sublime 和其他支持 .m 文件语法突出显示的免费编辑器。
好的,我是这样做的:
我安装了 VS 代码,因此,它在我的默认程序中创建了一个关联,如下所示:
然后你可以将你的 VS 程序指向这个扩展:
所以经过很长一段时间后,我找到了一个合理的解决方法。
您可以为 .m
个文件设置 "Open With" 默认值,但这似乎会为每个文件打开一个新的 MATLAB 实例 - 不太理想!以下由 SACn 建议 .
更好的选择是使用 Visual Studio 的 "External Tools"。
转到“工具”>“外部工具”,然后如 this documentation 所示,创建一个新工具。使用以下参数:
Title: Your Title Here
Command: cmd.exe
Arguments: /c "$(ItemPath)"
勾选"Close on exit"。这将打开带有 /c
(在命令后终止)标志的命令提示符,并且 运行s 是您在 VS 中打开的文件的文件名。在 Windows 系统上,这将在打开的 MATLAB 实例中打开文件,或者如果 none 存在则启动一个新实例。
这可以是 运行 多种方式...分配键盘快捷方式,运行 从“工具”菜单中,将其添加到工具栏,将其添加到上下文菜单。
现在只需单击/按键即可根据需要启动打开的 .m
文件。它仍然缺少 MATLAB 文件关联(以及文件浏览器中的相应图标),但它完成了主要工作!
我在 Visual Studio 2015 年使用 TFS,对 MATLAB 文件关联有疑问。对于 .m
个文件,没有与 MATLAB 的关联,如下所示:
令人困惑的是,.fig
和 .mat
文件存在关联,因此 VS 必须识别 MATLAB "exists"。如果我双击其中一种文件类型,它将在 MATLAB 中打开它,就像在资源管理器 window 中一样。这是我想要 .m
个文件的行为。
至少,我希望 .m
文件有 MATLAB 图标,以便在目录中轻松找到它们。作为理想的解决方案,这些文件也可以在 TFS 的 MATLAB(而不是 VS 文本编辑器)中打开。
我已经尝试了选项 > 文本编辑器中的 "File Extension" 选项,但 MATLAB 在编辑器列表中不适合我。
值得注意的是,我的工作网络对软件安装非常严格,因此外部加载项越少越好(理想情况下 none)。赞赏建议。
如果我没理解错的话,你是想把MATLAB和VS整合起来(看来你的问题和TFS无关)。
Visual Studio 没有这样的扩展名,但是 MatLab extension for Visual Studio Code。
============================================= ============================
从评论来看,您似乎想在 MATLAB 中使用 team explore 来启用 Team Foundation Version Control 的集成使用。恐怕您的要求暂时无法实现。 MATLAB 不支持团队资源管理器或 TFS MSSCCI Provider。
我在下面的网站提交了一个用户的声音,你可以投票:
我经常使用一个实用工具来解决与 MATLAB 相关文件的 OS 级关联问题 - associateFiles from FEX.
你可能应该用 associateFiles('deleteadd','.m')
调用它,这将生成一个名为 MatlabFileAssocFix.reg
的注册表文件,其中包含以下内容(显然 MATLAB 路径是根据你的系统生成的):
Windows Registry Editor Version 5.00
;FIXES MATLAB FILE ASSOCIATIONS
;REMOVES M FILE ASSOCIATIONS
[-HKEY_CLASSES_ROOT\.m]
[-HKEY_CLASSES_ROOT\MATLAB.m.9.1.0]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m]
;ADD SHELL OPEN
[HKEY_CLASSES_ROOT\Applications\MATLAB.exe\shell\open\command]
@="\"C:\D\Program Files\MATLAB\R2016b\bin\win64\MATLAB.exe\" \"%1\""
;ADD M FILE ASSOCIATIONS
[HKEY_CLASSES_ROOT\.m]
@="MATLAB.m.9.1.0"
"Content Type"="text/plain"
"PerceivedType"="Text"
[HKEY_CLASSES_ROOT\.m\OpenWithProgids]
"MATLAB.m.9.1.0"=""
[HKEY_CLASSES_ROOT\.m\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\.m\Versions\MATLAB.m.9.1.0]
"FileVersionMS"=dword:00090001
"FileVersionLS"=dword:00000000
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0]
@="MATLAB Code"
"FriendlyTypeName"="@C:\D\Program Files\MATLAB\R2016b\bin\win64\matlab.exe,-58"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\DefaultIcon]
@="C:\D\Program Files\MATLAB\R2016b\bin\win64\m.ico,0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open]
@="Open"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\command]
@="\"C:\D\Program Files\MATLAB\R2016b\bin\win64\matlab.exe\""
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec]
@="uiopen('%1',1)"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec\application]
@="ShellVerbs.Matlab.9.1.0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec\topic]
@="system"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run]
@="Run"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\command]
@="\"C:\D\Program Files\MATLAB\R2016b\bin\win64\matlab.exe\""
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec]
@="run('%1')"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec\application]
@="ShellVerbs.Matlab.9.1.0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec\topic]
@="system"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m\OpenWithProgids]
"m_auto_file"=hex(0):
"MATLAB.m.9.1.0"=hex(0):
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m\OpenWithList]
"a"="MATLAB.exe"
"MRUList"="a"
导入此文件时,它会删除 .m
存在的任何关联并将其与 MATLAB 关联。
我不知道这是否适用于您的问题,但我认为应该提及。
请注意:MATLAB 是用 Java 编写的,而不是基于 NET 或 Visual Studio 扩展,因此如果我们尝试将 MATLAB 编辑器作为插件打开,这目前不是一个好主意。
现在要编辑 .m 文件,您必须定义文件类型的新(外部)默认编辑器。
如果没有 MATLAB 许可证,请使用 Notepad++、Sublime 和其他支持 .m 文件语法突出显示的免费编辑器。
好的,我是这样做的:
我安装了 VS 代码,因此,它在我的默认程序中创建了一个关联,如下所示:
然后你可以将你的 VS 程序指向这个扩展:
所以经过很长一段时间后,我找到了一个合理的解决方法。
您可以为 .m
个文件设置 "Open With" 默认值,但这似乎会为每个文件打开一个新的 MATLAB 实例 - 不太理想!以下由 SACn 建议
更好的选择是使用 Visual Studio 的 "External Tools"。
转到“工具”>“外部工具”,然后如 this documentation 所示,创建一个新工具。使用以下参数:
Title: Your Title Here
Command: cmd.exe
Arguments: /c "$(ItemPath)"
勾选"Close on exit"。这将打开带有 /c
(在命令后终止)标志的命令提示符,并且 运行s 是您在 VS 中打开的文件的文件名。在 Windows 系统上,这将在打开的 MATLAB 实例中打开文件,或者如果 none 存在则启动一个新实例。
这可以是 运行 多种方式...分配键盘快捷方式,运行 从“工具”菜单中,将其添加到工具栏,将其添加到上下文菜单。
现在只需单击/按键即可根据需要启动打开的 .m
文件。它仍然缺少 MATLAB 文件关联(以及文件浏览器中的相应图标),但它完成了主要工作!