MATLAB 스크립트에 대한 인수로서 파일 이름의 탭 완성
-
12-09-2019 - |
문제
우리는 Matlab이 Matlab 함수에서 인수로 사용되는 파일 이름에 대한 탭 완성을 제공한다는 것을 알고 있습니다. importdata
,imread
. 우리가 만든 기능을 위해 어떻게해야합니까?
편집하다:
현재 디렉토리에 파일과 폴더가 표시됩니다.
해결책
주의 : 지원되지 않은 해킹은 여기에 있습니다.
MATLAB 설치에서 파일 도구 상자 local tc.xml 파일을 살펴보십시오. 여기에는 탭 완료를위한 인수 유형 매핑이 포함 된 것으로 보입니다. (R2009B의 "Imread"에 대한 Matlab 설치를 막아서 이것을 발견했습니다.)
이 줄을 추가합니다 <TC>
요소를 사용하면 각 인수에 대한 파일 이름의 탭 완성이 제공됩니다.
<binding name="importdata" ctype="FILE"/>
이를 위해서는 MATLAB 설치를 수정해야합니다. ClassPath.txt와 같은 Toolbox/Local의 다른 파일의 경우 Matlab을 시작한 디렉토리에 수정 된 사본을 배치하여 TC.XML에서는 작동하지 않았습니다.
다른 팁
인수 탭 완료에 함수를 추가하는 지원 방법은 없지만, 내가 사용하는 한 가지 트릭은 "!"를 넣는 것입니다. 명령 앞에서 시스템 명령처럼 취급됩니다. 그런 다음 탭이 파일 경로를 완료합니다. 내 MATLAB 명령이 완료되면, 나는 줄의 시작 부분이 집에 있고 "!" 그리고 Enter를 누릅니다.
Matlab 2016a 이상 :
TC.XML 파일은 MATLAB 2016A에 없습니다. a .json (Java 스크립트 객체 표기법) 파일을 달성합니다. 이것의 간단한 예는 다음과 같습니다.
Matlab 함수 파일이 호출되었다고 가정합니다 myFunction.m
. 또한이 기능이 확장자가있는 파일이 필요하다고 가정합니다. .ext
입력 및 탭 완성 이이 함수에 대한 가능한 모든 입력 옵션을 표시하도록 원합니다. 그런 다음 파일에 다음 내용을 작성하고 이름을 지정하십시오. functionSignatures.json
.
{
"myFunction":
{
"inputs":
[
{"name":"filename", "kind":"required", "type":"filepath=*.ext" }
]
}
}
이 파일을 동일한 디렉토리에 배치하십시오 myFunction.m
파일. 이제 matlab을 다시 시작하십시오.
이 파일의 일 : 함수 입력을 입력하는 동안 탭을 누르면 확장자가있는 파일 목록이 표시됩니다. .ext
팝업. 모든 파일을 연장에 관계없이 탭 완료 팝업에 표시하려면 교체하십시오. "type":"filepath=*.ext"
~와 함께 "type":"filepath"
파일에서 functionSignatures.json
.