웹사이트 검색

Sublime Text Snippet으로 생산성을 높이는 방법


간단히 말해서, 최근에 나는 내 작업에서 많은 bash 스크립트를 작성해야 하는 프로젝트에 배정되었습니다. 저는 Python 배경을 갖고 있으며 모든 개발 작업에 Jupyter Notebook을 사용하고 있습니다. 나에게 bash 스크립트의 문제점은 혼란스러운 대괄호 사용과 모든 스크립트에서 반복되는 코드 블록입니다.

그 시점까지는 Nano 편집기를 사용하여 bash 스크립트를 작성했습니다. Nano는 터미널 편집기로서 몇 가지 기본 기능을 제공하지만 그 이상은 아닙니다. 그래서 저는 조사를 하고 bash 및 기타 프로그래밍 언어에 대한 편집기로 "SUBLIME TEXT 3"을 선택했습니다. 나는 반복적인 기능, 한 줄짜리 코드, bash 스크립트용 제어 블록을 위한 많은 스니펫을 만들어 시간을 절약했을 뿐만 아니라 생산성도 향상시켰습니다.

스니펫이란 무엇입니까?

스니펫은 많은 최신 텍스트 편집기 또는 IDE 편집기와 함께 제공되는 인기 있는 프로그래밍 기능입니다. 스니펫은 필요할 때마다 재사용할 수 있는 템플릿으로 생각할 수 있습니다. 스니펫은 특정 프로그래밍 언어로 제한되지 않습니다. 간단하게 새 스니펫을 만들고, 삽입하려는 텍스트를 추가하고, 실행 단어를 할당할 수 있습니다. 다음 섹션에서 이러한 모든 기능을 살펴보겠습니다.

Sublime Text에 정의된 조각을 나열하려면

기본적으로 sublime text는 bash에 대해 사전 정의된 일부 스니펫과 함께 제공됩니다. 스니펫을 검색하고 있는 현재 파일을 기반으로 스니펫을 스마트하게 표시합니다. 쉘 스크립트 내부에 있는데 pallet 명령을 호출하고 snippet을 입력하면 bash에 대해 정의된 스니펫 목록이 자동으로 제공됩니다.

Sublime Text에서 코드 조각에 액세스하는 방법에는 두 가지가 있습니다.

  1. 메뉴 기반 ⇒ 숭고한 텍스트 → 도구 → 스니펫
  2. 명령 팔레트 ⇒ 상위 텍스트 → 명령 팔레트(CTRL+SHIFT+P) → 유형 스니펫

Sublime Text에서 새 조각 만들기

Sublime 텍스트는 새 스니펫을 생성할 때 XML 형식의 기본 템플릿을 제공합니다. 템플릿을 만들려면 SUBLIME TEXT → TOOLS → DEVELOPER → NEW SNIPPET으로 이동하세요.

템플릿 정의를 이해하고 매개변수를 수정해 보겠습니다.

  • 삽입할 실제 콘텐츠 또는 코드 블록은 내에 배치되어야 합니다. '헤더 댓글'에 대한 스니펫을 만들겠습니다. 귀하가 생성하는 모든 스크립트에는 작성자 이름, 생성 날짜, 버전 번호, 배포 날짜 등과 같은 스크립트에 대한 정보를 정의하는 헤더 주석이 있습니다.
  • 스니펫의 트리거 역할을 하는 'TEXT'를 바인딩하는 Tabtrigger(선택 사항). 트리거 이름을 입력하고 'TAB'을 누르면 스니펫이 삽입됩니다. 기본적으로 주석 처리되어 있으며 주석을 제거하고 트리거에 대한 일부 텍스트를 추가합니다. 설명적이고 짧은 이름을 선택하십시오. 예: 헤더 설명을 삽입하기 위해 “hcom”을 선택합니다. 그것은 당신이 선택할 수 있습니다.
  • 범위(선택사항)는 스니펫이 결합되는 언어를 정의합니다. 한 번에 2~3개의 다른 프로그래밍 언어로 작업할 수 있으며, 여러 프로그래밍 언어의 서로 다른 조각에 동일한 이름을 사용할 수도 있습니다. 이 경우 범위는 충돌을 피하기 위해 스니펫을 삽입해야 하는 언어를 제어합니다. Link에서 범위 목록을 가져올 수 있습니다. 또는 TOOLS → DEVELOPER → SHOW SCOPE NAME으로 이동하거나 를 눌러 사용 중인 언어의 범위 이름을 가져올 수 있습니다.
  • 설명(선택사항)은 기본 템플릿에서 사용할 수 없지만 이를 사용하여 이 스니펫의 기능에 대한 일부 컨텍스트를 정의할 수 있습니다.

이제 우리는 몇 가지 기본적인 작업을 수행했습니다. 우리는 "hcom" 탭 트리거와 결합되고 쉘 스크립트에 소스를 제공하는 간단한 헤더 주석을 삽입하는 스니펫을 정의했습니다.

이제 새 bash 파일을 열고 "hcom을 입력"해 보겠습니다. 아래 이미지를 보면 "h를 입력"할 때 내 스니펫 정의가 우리가 제공한 설명과 함께 나타납니다. 내가 해야 할 일은 <tab> 키를 눌러 확장하는 것뿐입니다.

필드

필드는 $1, $2, $3 등을 사용하여 표시됩니다. 필드의 도움을 받아 <tab> 키를 누르기만 하면 필드 마커가 배치된 위치로 이동할 수 있습니다.

내 스니펫을 보면 두 개의 필드 마커 $1$2를 추가했습니다. 스니펫을 삽입하면 커서가 에 배치됩니다. $1 해당 위치에 뭔가를 입력할 수 있습니다.

그런 다음 <tab> 키를 눌러 다음 마커 $2로 이동하고 무언가를 입력해야 합니다. 이 경우 2개 위치에 $1라고 표시된 동일한 마커가 있는 경우 한 위치에서 필드를 업데이트하면 동일한 필드 ($1)가 업데이트됩니다.

  • <tab> 키 → 다음 필드 마커로 이동합니다.
  • 키 → 이전 필드 마커로 이동합니다.
  • 키 → 필드 사이클을 중단합니다.
  • $0 → 종료 지점을 제어합니다.

자리 표시자

자리 표시자는 중괄호 $ {0:<기본값>}; 내에 정의된 키-값 쌍과 유사하며 필드 마커에는 기본값으로 태그가 지정됩니다. 값을 변경하거나 그대로 둘 수 있습니다. 스니펫을 삽입하고 탭을 누르면 커서가 기본값으로 이동합니다.

이제 코드 조각이 기본값으로 삽입되고 마우스는 이 경우 v1$1에 배치됩니다. 값을 수정하거나 <tab> 키를 눌러 다음 마커로 이동할 수 있습니다.

Sublime Text 스니펫의 유일한 단점은 모든 스니펫을 단일 파일로 그룹화할 수 없다는 것입니다. 파일당 하나의 스니펫만 허용되므로 번거롭습니다. 하지만 .sublime-completion 파일 생성과 같은 다른 옵션도 있습니다. 이에 대해 자세히 알아보려면 설명서를 살펴보세요.

내 조각 파일은 어디에 저장되어 있나요?

스니펫 파일은 .sublime-snippet 접미사를 붙여 저장해야 합니다. 기본 설정패키지 찾아보기로 이동합니다. 사용자 정의 설정이 저장된 디렉토리가 열립니다. 스니펫 파일이 저장될 'User' 디렉토리로 이동하세요.

스니펫 생성기

Snippet-generator-app은 입력을 기반으로 웹 기반 자동 스니펫 생성을 제공합니다. Sublime Text, Atom 및 VSCode에서 사용할 수 있습니다. 설명, 탭 트리거, 콘텐츠를 왼쪽에 입력하면 페이지 오른쪽에 라이브 코드가 생성됩니다.

Ambari API에서 클러스터 이름을 가져오는 샘플 조각입니다.

오늘은 그게 다야. 우리는 숭고한 텍스트에서 스니펫을 사용하면 얻을 수 있는 이점을 확인했습니다. 나는 스니펫 기능을 설명하기 위해 간단한 의사 텍스트를 예로 사용했지만 더 많은 내용이 있습니다. 또한 이 기능은 Vim, Atom, Eclipse, Pycharm 과 같은 모든 편집기/IDE에서 사용할 수 있다는 점을 지적하고 싶습니다. , Vscode