Sublime Text 3의 untitled 탭에 첫 행 표시하기

설정 다시 하기 귀찮아서 Sublime Text 3 업데이트를 미루다가 실수로 눌러버렸다! 사용하는 에디터 중에는 여전히 sublime이 가장 반응속도가 빠르다. 대부분의 코드는 vscode나 vim에서 작성하지만 여전히 짧은 메모라든지 코드 스니핏/마사징은 sublime에서 하고 있다.

2에서 3으로 업데이트 한 후에 달라진 동작이 몇 가지 있다. 탭이 깔끔하게 untitled로 표시된다는 점이 가장 불편했다. 이 부분은 검색해보니 set_unsaved_view_name.py 라는 내장된 플러그인에서 동작을 수정해야 한다.

  1. Package Resource Viewer를 설치한다.

    1. cmd + shift + p으로 Command Palette를 연다.
    2. package control: install package 클릭한 후 package resource viewer를 입력해서 설치한다. (목록에 나오지 않는다면 Package control를 설치해야 한다.)
  2. 앞서 열었던 Command Palette를 다시 연다.
  3. open resource를 입력해서 PackageResourceViewer: Open Resource를 연다.
  4. Default -> set_unsaved_view_name.py 를 선택한다.

이제 해당 파일을 변경하면 된다. SetUnsavedViewName 클래스의 update_title 메소드에서 다음 내용을 찾는다.

        if syntax != 'Packages/Text/Plain text.tmLanguage':
            if cur_name:
                # Undo any previous name that was set
                view.settings().erase('auto_name')
                if cur_name == view_name:
                    view.set_name("")
            return

빈 행으로 설정하고 반환하는 것을 확인할 수 있다. 다음처럼 변경하고 저장한다.

        if syntax != 'Packages/Text/Plain text.tmLanguage':
            if cur_name:
                # Undo any previous name that was set
                view.settings().erase('auto_name')

변경 후에 반영이 되지 않는다면 Preferencesset_unsaved_view_name 항목이 false로 지정되지 않았는지 확인해야 한다. Preferencescmd + ,로 열어서 설정이 있는지 찾는다.

코드를 보니 의외로 수정하기 쉽게 되어 있길래 몇 가지 더 넣었다. #으로 시작하면 Markdown으로 변경하고 탭에는 #을 제거한 후, ✏️ 이모지를 붙였다.

        first_line = view.substr(line)

        first_line = first_line.strip(self.dropped_chars)

        # 추가한 부분
        if first_line[0:2] == "# ":
            first_line = "✏️ " + first_line[2:]
            # Markdown Extended를 사용하는 경우
            view.settings().set('syntax', 'Packages/Markdown Extended/Syntaxes/Markdown Extended.sublime-syntax')
            # 내장 Markdown을 사용하는 경우
            # view.settings().set('syntax', 'Packages/Markdown/Markdown.sublime-syntax')

        self.setting_name = True
        view.set_name(first_line)
        self.setting_name = False

참고로 Ctrl + `를 누르면 콘솔이 열리는데 코드 내에서 print() 한 내용도 확인할 수 있다.

김용균

안녕하세요, 김용균입니다. 문제를 해결하기 위해 작고 단단한 코드를 작성하는 일을 합니다. 웹의 자유로운 접근성을 좋아합니다. 프로그래밍 언어, 소프트웨어 아키텍처, 커뮤니티에 관심이 많습니다.

이 글 공유하기

이 글이 유익했다면 주변에도 알려주세요!

페이스북으로 공유하기트위터로 공유하기링크드인으로 공유하기Email 보내기

주제별 목록

같은 주제의 다른 글을 읽어보고 싶다면 아래 링크를 확인하세요.

January 23, 2018

ReactPHP의 Process로 pipe 사용하기

ReactPHP의 child-process 패키지를 사용하면 손쉽게 pipe를 사용할 수 있다. 아래 명령을 코드로 전환한다고 생각해보자. 수작업으로 열어서 pipe를 받아 , 해도 되지만 코드가 복잡해진다. ReactPHP를 사용하면 …

January 04, 2018

ipify: 300억 요청 처리, 그 너머로

Randall Degges 의 포스트 To 30 Billion and Beyond 를 번역했다. ipify를 만들고 확장하는 일련의 과정을 풀어 쓴 이야기다. Thank you, Randall Degges for giving me the oppor…