Sublime 2/3에서 언어에 대한 구문 강조 표시 변경 / 추가


94

Sublime 2/3에서 언어에 대한 구문 강조 표시를 변경 / 추가하고 싶습니다.

예를 들어 나는 키워드를 원합니다 this JavaScript로 채색 .

어떻게 할 수 있습니까?

에 기본 설정 JavaScript 파일이 C:\Program Files\Sublime Text 3\Packages있다는 것을 알고 있지만 무엇을 변경해야하는지 또는이 폴더 어딘가에 새 JavaScript 기본 설정 파일을 만들어야하는지 모르겠습니다 %APPDATA%\Sublime Text 3.

답변:


95

구문 강조 표시는 사용하는 테마로 제어되며을 통해 액세스 할 수 있습니다 Preferences -> Color Scheme. 테마 .tmLanguage는 언어 디렉토리 / 패키지의 파일에 포함 된 일련의 정규식으로 정의되는 범위 사용을 통해 다양한 키워드, 함수, 변수 등을 강조 합니다. 예를 들어, JavaScript.tmLanguage파일은 범위 source.js와 키워드 variable.language.js를 할당합니다 this. Sublime Text 3는 .sublime-package모든 기본 설정을 저장하기 위해 zip 파일 형식을 사용하기 때문에 개별 파일을 편집하는 것은 그리 간단하지 않습니다.

안타깝게도 모든 테마에 모든 범위가 포함되어있는 것은 아니므로 다른 테마를 사용하여 멋지게 보이고 원하는 강조 표시를 제공하는 것을 찾아야합니다. 이 숭고한 텍스트에 포함 된 테마의 숫자, 그리고 많은 사람들이 등을 통해 사용할 수있는 패키지 제어 나는 매우 당신이 이미하지 않은 경우 설치를 권장합니다. ST3 지침 을 따르십시오. .

이런 일이 발생함에 따라 Neon Color Scheme패키지 제어를 통해 사용할 수있는을 개발 했습니다. 저의 주요 목표는 다양한 언어를 가능한 한 멋지게 보이게 만드는 것 외에도 표준 테마에 포함 된 것보다 더 많은 범위를 가능한 한 많이 식별하는 것이 었습니다. 예를 들어 JavaScript 언어 정의는 Python만큼 철저하지 않지만 또는 Neon같은 일부 기본값보다 훨씬 더 다양 합니다.MonokaiSolarized

네온 테마로 강조 표시된 jQuery

Better JavaScriptSublime과 함께 제공되는 이미지 대신이 이미지에 @ int3h의 언어 정의를 사용했습니다. 패키지 제어를 통해 설치할 수 있습니다.

최신 정보

최근에 저는 또 다른 JavaScript 대체 언어 정의 인 JavaScriptNext - ES6 Syntax. 기본 JavaScript 또는 더 나은 JavaScript보다 더 많은 범위가 있습니다. 동일한 코드에서 다음과 같이 보입니다.

JavaScriptNext

또한 원래이 답변을 썼기 때문에 @skuroda는 PackageResourceViewerPackage Control을 통해 출시되었습니다 . 이를 통해 .sublime-package패키지의 일부 또는 전체를 원활하게보고, 편집 및 / 또는 추출 할 수 있습니다 . 따라서 원하는 경우 Sublime에 포함 된 색 구성표를 직접 편집 할 수 있습니다.

또 다른 업데이트

Github 의 거의 모든 기본 패키지 가 출시되면서 변경 사항이 빠르고 격렬하게 진행되었습니다. 이전 JS 구문은 JavaScript Next ES6 구문의 가장 좋은 부분을 포함하도록 완전히 재 작성되었으며 이제는 최대한 ES6과 완전히 호환됩니다. 다른 변화의 일관성을 향상, 커버 코너 및 가장자리 경우에 만들어, 그냥 전반적으로 더 나은을하고있다. 새로운 구문은 (현재) 최신 dev 빌드 3111에 포함되었습니다.

현재 베타 빌드 3103 에서 새로운 구문을 사용 하려면 Github 저장소를 어딘가에 복제하고 JavaScript(또는 원하는 언어)를 Packages디렉토리에 연결합니다 Preferences -> Browse Packages.... 을 선택하여 시스템에서 찾습니다 . 그런 다음 git pull수시로 원본 repo 디렉토리에서 변경 사항을 새로 고치면 최신 및 최고의 것을 즐길 수 있습니다! 저장소는 .sublime-syntax이전 형식 대신 새 형식을 사용 .tmLanguage하므로 3084 이전의 ST3 빌드 또는 ST2에서는 작동하지 않습니다 (두 경우 모두 최신 베타 또는 개발 빌드로 업그레이드해야 함).

나는 현재 새로운 JS 구문의 모든 새로운 범위를 처리하기 위해 Neon Color Scheme을 조정하고 있지만 대부분은 이미 다루어야합니다.


Package Control과 Better JavaScript를 설치했습니다. 당신의 계획을 어떻게 설정할 수 있습니까? 색 구성표 아래에 나열되지 않습니다.
Niklas

패키지 제어를 통해서도 "네온 테마"를 설치 하셨나요? 일단 당신이 이동하여 Preferences -> Color Scheme -> Neon Theme선택하십시오 Neon.
MattDMo 2013 년

1
패키지 제어를 통해 패키지를 설치하면 올바른 위치 (이 경우)에 자동으로 저장됩니다 %APPDATA%\Sublime Text 3\Installed Packages\Neon Theme.sublime-package. 위의 메뉴 옵션을 선택하면 Packages\User\Preferences.sublime-settings파일도 자동으로 업데이트 됩니다.
MattDMo 2013 년

@MattDMo-와우, 이것은 매우 철저했습니다. XML과 유사한 마크 업에 대한 구문 색상 및 편집 강화를 수행하려고합니다. 그러나 매우 간단한 것을 시작하는 방법을 알아내는 데 어려움이 있습니다. 리버스 엔지니어링을 시작할 수있는 곳에서 시작하거나 더 나은 방법은 생성에 대한 자습서를 얻을 수 있습니다.
Timothy T.

1
@ nmz787 .sublime-syntax파일 만 있으면 다운로드하여 ~/.config/sublime-text-3/Packages/User. 그러면 Sublime 창의 오른쪽 하단에있는 구문 메뉴에서 자체적으로 ( "SystemVerilog"라고 표시됨) 또는 User설정에 따라 하위 메뉴에서 사용할 수 있습니다. 전체 패키지를 원하는 경우 패키지 제어가 올바르게 설치되었는지 확인하고 명령 팔레트를 열고 pci 를 입력 한 다음 Enter 키를 누르고를 검색 한 다음 SystemVerilogEnter 키를 누르십시오. 파일이나 다른 이름을 바꿀 필요가 없습니다. 왜 그렇게 하셨나요?
MattDMo 2016

31

마침내 주어진 테마를 사용자 정의하는 방법을 찾았습니다.

로 이동 C:\Program Files\Sublime Text 3\Packages하고 + 이름 바꾸기를 복사 Color Scheme - Default.sublime-packageColor Scheme - Default.zip. 그 후 압축을 풀고 테마를 복사하여 %APPDATA%\Sublime Text 3\Packages\User. (제 경우에는 All Hallow's Eve.tmTheme).

그런 다음 텍스트 편집기로 열고 thisJavaScript에서 변경하는 것과 같이 무언가를 변경 / 추가 할 수 있습니다 .

<dict>
    <key>name</key>
    <string>Lang Variable</string>
    <key>scope</key>
    <string>variable.language</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF0000</string>
    </dict>
</dict>

이것은 thisJavaScript 파일에 빨간색으로 표시 됩니다. 에서 테마를 선택할 수 있습니다 Preferences -> Color Scheme -> User -> <Your Name>.


1
예, 이것은 우리 모두가 Sublime Text 3의 용감한 새로운 세계에 접근 할 때 .sublime-package
익숙해 져야하는 투박한 해결 방법입니다. 머지 않아

9
이 플러그인은 여기에 PackageResourceViewer있습니다. 패키지 제어를 통해 호출 되고 설치할 수 있습니다. Sublime Text 3 .sublime-package파일로 작업하는 것이 훨씬 쉬워지며 ST3에 어떤 종류의 사용자 정의를 계획하고 있다면 강력히 권장합니다.
MattDMo

1
이 규칙에 대한 참조를 어디에서 찾았습니까?
qodeninja 2015 년

2
^ 그들이 말한 것. 또한 코드에서 "this"키워드를 언제 / 어디서 "선택"하는지, 왜 이것이 "this"키워드에만 색상이 지정되는지 이해하지 못합니다. 설명해 주시겠습니까?
Zelphir Kaltstahl


16

패키지 제어를 통해 설치된 PackageResourceViewer 플러그인을 사용합니다 ( MattDMo에서 언급 ). 이렇게하면 Sublime Text에서 간단히 열고 파일을 저장하여 압축 된 리소스를 재정의 할 수 있습니다. 편집 된 리소스 만 % APPDATA % / Roaming / Sublime Text 3 / Packages / 또는 ~ / .config / sublime-text-3 / Packages /에 자동으로 저장합니다.

op와 관련하여 플러그인이 설치되면 PackageResourceViewer: Open Resource명령을 실행하십시오 . 그런 다음을 선택 JavaScript합니다 JavaScript.tmLanguage. 그러면 편집기에서 xml 파일이 열립니다. 언어 정의를 편집하고 파일을 저장할 수 있습니다. 그러면 사용자 디렉터리에 JavaScript.tmLanguage 파일의 재정의 복사본이 작성됩니다.

동일한 방법을 사용하여 시스템에있는 모든 언어의 언어 정의를 편집 할 수 있습니다.


색상에 대해서는 아무것도 보이지 않습니다. 그러나 당신의 대답은 내가 필요로하는 것에 가장 가깝습니다. 대신 JSON 구문 강조 표시가 작동하도록하기 위해이 SublimeText 포럼 게시물 에 따라 Monokai.tmTheme를 편집 했습니다.
jmort253 2014

1
이 답변의 특정 지침은 언어 정의를 편집하기위한 것입니다. 이렇게하면 색 구성표의 색을 직접 편집 할 수는 없지만 특정 유형의 범위를 찾는 방법과 색 구성표가 언어를 해석 (및 색)하는 방법을 변경할 수 있습니다. 플러그인은 Sublime에서 모든 유형의 리소스를 열어 동일한 도구를 사용하여 색상 구성표를 직접 유사하게 편집 할 수 있습니다. 예를 들어, 저는 Tomorrow Night 색 구성표를 좋아하므로이 플러그인으로 Tomorrow-Night.tmTheme를 열어 해당 색 구성표를 편집합니다.
chawkinsuf 2014

5

"this"는 이미 Javascript로 채색되어 있습니다.

보기-> 구문-> 강조 표시 할 언어를 선택하십시오.


내가 찾던 것 : View -> Syntax -> Open all with current extension as...예를 들어 *.stanC ++ 구문 색상으로 파일 을 설정하는 것 .
BoltzmannBrain

0

이게 내 레시피

참고 : 이것은 OP가 요구하는 것과는 다릅니다. 이 지침은 구문 일치 규칙이 정의 된 항목 (주석, 키워드 등)의 색상을 변경하는 데 도움이됩니다. 예를 들어, 모든 코드 주석이 녹색 대신 파란색으로 표시되도록이 지침을 사용하여 변경하십시오.

나는 OP가 thisJavaScript 소스 파일에서 발견 될 때 색상이 지정 될 항목으로 정의하는 방법을 묻고 있다고 생각 합니다.

  1. 패키지 설치 : PackageResourceViewer

  2. Ctrl+Shift+P> [ PackageResourceViewer: Open Resource]> [ Color Scheme - Default]> [ Marina.sublime-color-scheme] (또는 사용하는 색 구성표)

  3. 위의 명령은 " Marina.sublime-color-scheme" 파일에 대한 새 탭을 엽니 다 .

    • 나를 위해이 파일은 내 로밍 프로필 %appdata%( C:\Users\walter\AppData\Roaming\Sublime Text 3\Packages\Color Scheme - Default\)에 있습니다.
    • 그러나 Windows 탐색기 에서 해당 경로를 찾아 보면 [ Color Scheme - Default]은 [ ] dir의 하위 디렉토리가 아닙니다 Packages. 나는 그것이 PackageResourceViewer가상화를하고 있다고 생각합니다 .

선택적 단계 : 새 색 구성표 탭에서 : Ctrl+Shift+P> [ Set Syntax: JSON]

  1. 변경할 규칙을 검색하십시오. 댓글을 이동하여 표시하고 싶었 기 때문에 " Comment"을 (를) 검색했습니다 .

    • "rules"섹션 에서 찾았습니다.
 "rules":
    [
        {
            "name": "Comment",
            "scope": "comment, punctuation.definition.comment",
            "foreground": "var(blue6)"
        },
  1. "blue6":색상 변수 정의 섹션을 찾으 려면 문자열 을 검색 하십시오. "variables"섹션 에서 찾았습니다 .

  2. http://hslpicker.com/ 과 같은 도구를 사용하여 새 색상을 선택합니다 .

  3. 새 색상 변수를 정의하거나의 색상 설정을 덮어 씁니다 blue6.

    • 경고 : 덮어 쓰기 blue6는 blue6 ( "구두점" "액세서")도 사용하는 해당 색 구성표의 다른 모든 텍스트 요소에 영향을줍니다.
  4. 파일을 저장하면 변경 사항이 열려있는 모든 파일 / 탭에 즉시 적용됩니다.

노트

Sublime은 이러한 색상 스타일을 처리합니다. 아마도 더 많을 것입니다.

hsla = 색조, 채도, 밝기, 알파 rgba = 빨강, 녹색, 파랑, 알파

hsla (151, 100 %, 41 %, 1)-마지막 매개 변수는 알파 수준 (투명도) 1 = 불투명, 0.5 = 반투명, 0 = 완전 투명

hsl (151, 100 %, 41 %)-알파 채널 없음

rgba (0, 209, 108, 1)-알파 채널이있는 rgb

rgb (0, 209, 108)-알파 채널 없음

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.