docs/i18n/ko/USER-GUIDE.md원문 보기 ↗
이 페이지의 내용

사용자 가이드

문서 색인(영어) · 프로젝트 개요

🇺🇸 English · 🇨🇳 简体中文 · 🇭🇰 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇧🇷 Português

이 문서는 영어판 USER-GUIDE.md의 커밋 68169b9 시점을 번역한 것입니다. 이후 영어판이 바뀌었거나 내용이 다르면 영어판을 따릅니다. 화면에 보이는 이름은 Corta의 한국어 UI를 따랐습니다. 설정 키, 명령, 코드는 원문 그대로 둡니다.

Corta가 할 수 있는 모든 것과 그 위치입니다. 각 절은 기능이 어디에 있는지 — 메뉴, 단축키, 설정 — 알려 주고, 자세한 내용이 담긴 참조 문서로 연결합니다. 단축키는 기본값이며, 다음 찾기와 이전 찾기를 제외하면 모두 바꿀 수 있습니다 (키보드 단축키).

설치와 업데이트

Corta에는 macOS 26.0 이상, Apple 실리콘, Metal 4를 지원하는 GPU가 필요합니다. 반가상화 GPU를 쓰는 가상 머신은 터미널을 렌더링할 수 없습니다. GitHub Releases에서 .dmg와 그 .sha256 파일을 내려받아 같은 폴더에 두고, 이미지를 열기 전에 그곳에서 체크섬을 확인하세요(x.y.z는 내려받은 버전으로 바꾸세요):

shasum -a 256 -c Corta-x.y.z.dmg.sha256
open Corta-x.y.z.dmg

Corta를 응용 프로그램으로 끌어 놓은 다음 이미지를 추출하세요. 1.1.9부터의 릴리스는 디스크 이미지이고, 1.1.8 이하는 원래의 ZIP을 유지합니다.

공식 릴리스는 Developer ID로 서명되고 공증을 받았습니다. macOS가 내려받은 파일을 거부하면 문제 해결을 따라 하세요. 다른 위치에서 실행하면 Corta는 스스로를 /Applications로 옮기겠다고 제안합니다(suggest-applications-folder).

업데이트. **Corta ▸ 업데이트 확인…**은 즉시 확인합니다. update-auto-check = false가 아니라면 백그라운드 확인이 하루에 한 번 실행됩니다. 업데이트는 사용자가 동의할 때만 설치됩니다.

다른 터미널에서 옮겨 오기

Corta에는 가져오기 기능이 없습니다. 읽는 것은 텍스트 파일 ~/.config/corta/config 하나뿐이고, 설정 윈도우도 같은 파일을 편집합니다. 대부분의 습관은 키 몇 개로 이어 갈 수 있습니다. 왼쪽 열은 다른 터미널에서 그 습관이 있던 곳, 오른쪽 열은 해당하는 Corta 키입니다(각 키의 값과 적용 시점은 Configuration, 영어).

이런 기능에 기대고 있었다면…Corta에서는
⌥를 Meta / Alt로 사용(iTerm2의 Left Option key: Esc+, Ghostty의 macos-option-as-alt)option-as-meta = true. 기본값은 꺼짐이라 ⌥는 macOS처럼 é, ø, –를 입력합니다.
선택 시 복사copy-on-select, 기본값 켜짐. ⌘C만 쓰려면 false.
ssh 너머나 tmux 안의 프로그램이 클립보드에 복사(OSC 52)allow-clipboard-write = true. 기본값은 꺼짐. 어떤 설정에서도 클립보드 읽기는 불가능합니다.
작업 중인 윈도우를 닫기 전에 확인confirm-close, 기본값 켜짐.
윈도우가 떠났던 자리에서 다시 열림restore-windows, 기본값 켜짐. 레이아웃, 탭, 작업 디렉터리는 돌아오지만 프로세스와 터미널 텍스트는 돌아오지 않습니다.
나만의 색 구성파일에서 정의한 테마(theme.<name>.*), 또는 보기 ▸ 테마 편집기…. 테마 만들기와 편집.
나만의 키 바인딩bind.<command> = <shortcut>. 명령 이름은 키보드 단축키에 있습니다.
원하는 글꼴설정 ▸ 모양 ▸ 글꼴, 또는 font-family. Corta가 그리드에 배치할 수 있는 고정폭 글꼴만 표시됩니다.
합자, 투명도, 프로필별 설정없습니다. 제공하지 않는 것이며, 각각 먼저 결정이 필요합니다. 프리셋으로 셸, 디렉터리, 환경 변수를 지정할 수 있습니다(Presets).
tmux -CC 제어 모드지원하지 않습니다(D09). 일반 tmux는 다른 프로그램처럼 Corta 안에서 실행됩니다.

셸 통합. 표준 로컬 zsh 세션은 시작 파일을 건드리지 않고 Corta의 훅을 불러옵니다. ~/.zshrc, ~/.bashrc, config.fish가 아직 다른 터미널의 통합 — iTerm2, WezTerm, Visual Studio Code의 것 — 을 불러오고 있다면, 설정 ▸ 터미널 ▸ 셸 통합에 충돌할 수 있다는 안내가 나옵니다. 둘 다 프롬프트 표시를 출력할 수 있기 때문입니다. 셸 통합을 보세요.

TERM. Corta는 xterm-256color로 자신을 알립니다(D08). iTerm2나 Terminal.app에서 이미 잘 동작하는 원격 호스트는 바꿀 것이 없습니다. xterm-ghostty나 xterm-kitty에 맞춰 설정된 호스트는 대신 이 일반적인 값을 받게 됩니다.

복사, 닫기, 원격 배지처럼 조금씩 다른 동작은 문제 해결 → 다른 터미널과 다른 동작에 모아 두었습니다.

윈도우, 탭, 페인

탭은 제목 막대 줄에, 윈도우의 닫기·최소화·확대 버튼 바로 옆에 있습니다. 각 탭에는 포커스된 페인이 실행하는 프로그램 — 셸이면 어두운 프롬프트 타일, 그 밖의 프로그램은 그 프로그램 고유의 색 — 과 이름, 디렉터리가 왼쪽 정렬로 표시됩니다. 프로그램이 터미널을 넘겨받았을 때 — REPL, 편집기, 에이전트, 연결된 ssh — 에만 그 아이콘이 붙고, 실행해서 출력만 하는 명령(java -version, git status 등)은 프롬프트 타일을 유지합니다. 페인을 분할한 탭은 다른 페인의 아이콘을 맨 앞 아이콘 뒤에 살짝 돌려 겹쳐 보여 주며, 페인을 클릭하면 그 프로그램이 앞으로 옵니다. 탭에 포인터를 올리면 닫기 버튼이 나타나고, 드래그로 순서를 바꾸고, 두 번 클릭으로 이름을 바꾸며, 오른쪽 클릭으로 새 탭, 탭 이름 변경…, 탭 닫기, 다른 탭 닫기를 쓸 수 있습니다. 탭이 너무 많아 다 들어가지 않으면 줄이 옆으로 스크롤됩니다 — 줄 위에서 옆으로 쓸어 넘기거나 마우스 휠을 돌리세요 — 그리고 선택한 탭을 따라갑니다.

제목 막대 줄에 프로그램 아이콘과 함께 놓인 탭

하고 싶은 일방법
윈도우 / 탭 열기⌘N / ⌘T
이전 / 다음 탭⇧⌘[ / ⇧⌘] 또는 ⇧⌃Tab / ⌃Tab
탭 1–8 / 마지막 탭 보기⌘1–⌘8 / ⌘9
현재 탭 이름 변경탭 제목을 두 번 클릭하거나, 오른쪽 클릭 ▸ 탭 이름 변경…
페인을 오른쪽 / 아래로 분할⌘D / ⇧⌘D
페인 사이에서 포커스 이동⌥⌘ + 화살표 키
포커스된 페인 크기 조절⌃⌘ + 화살표 키
페인 하나로 윈도우 채우기, 다시 되돌리기⇧⌘↩(페인 확대)
모든 페인을 같은 크기로페인 균등 분할(명령 팔레트)
페인, 탭, 윈도우 닫기⌘W
방금 닫은 페인 되돌리기⇧⌘T
  • 탭 이름은 제목에서 바로 바꿀 수 있습니다. 두 번 클릭하거나 오른쪽 클릭 메뉴에서 탭 이름 변경…을 고르세요. Return은 저장, Esc는 취소이며, 이름을 비우면 자동 제목으로 돌아갑니다. 사용자 이름은 셸 출력에도, 세션 복원에도 유지됩니다. 탭과 터미널의 오른쪽 클릭 메뉴에도 새 탭이 있고, 도구 막대의 + 버튼으로도 탭을 열 수 있습니다. 탭 줄 자체에는 **+**가 없습니다.
  • 윈도우 사이에서 탭 옮기기. 탭을 줄 아래로 끌어내 놓으면 별도의 윈도우가 되고, 다른 윈도우의 탭 줄에 놓으면 그리로 옮겨집니다. 페인은 계속 실행됩니다. 윈도우 ▸ 탭을 새로운 윈도우로 이동과 탭의 오른쪽 클릭 메뉴로 앞의 일을, 윈도우 ▸ 모든 윈도우 병합으로 모든 탭을 맨 앞 윈도우에 모읍니다. 스크롤되는 줄의 끝으로 탭을 끌면 줄도 함께 움직입니다.
  • 페인 확대는 일시적입니다. 아무것도 닫지 않고 어떤 프로세스도 건드리지 않습니다.
  • 닫은 페인 다시 열기는 페인의 위치, 크기, 작업 디렉터리를 되돌립니다 — 그 안에서 실행되던 프로그램은 아닙니다.
  • 명령이 아직 실행 중인 페인을 닫으면 먼저 묻습니다(confirm-close).
  • 윈도우 복원. 종료했다가 다시 실행하면 모든 윈도우가 탭, 분할, 구분선 위치, 각 페인의 작업 디렉터리와 함께 돌아옵니다 (restore-windows, 기본값 켜짐). 각 페인은 새 프로세스를 시작하며, 터미널 텍스트와 실행 중이던 작업은 복원되지 않습니다.
  • 프리셋. 프리셋은 설정 파일에 정의한, 이름이 붙은 셸·디렉터리·환경 변수 묶음입니다. 셸 ▸ 프리셋으로 새 페인으로 열고, ⌥를 누르고 있으면 별도의 윈도우에서 엽니다(Presets).
  • 새 윈도우는 columns × rows 셀 크기로 열립니다(기본값 120 × 30).

텍스트, 글꼴, 테마

  • 글꼴. 설정 ▸ 모양 ▸ 글꼴에는 시스템 고정폭(기본값)과 Corta가 그리드에 배치할 수 있는 설치된 모든 고정폭 글꼴이 두 그룹으로 나옵니다: Apple 서체(macOS와 함께 제공되거나, 서체 관리자에서 내려받은 Apple의 주문형 서체)와 직접 설치한 서체입니다. 메뉴 아래 줄에는 고른 글꼴의 출처와 자체 CJK 문자를 가졌는지가 표시됩니다 — 그런 글꼴은 영문자와 기호도 CJK 디자인으로 그립니다 (예를 들어 위로 올라간 ~). 설정 파일의 font-family가 같은 설정입니다. font-size는 기본 13 pt이며 10–24 pt의 정수입니다. 이 페이지에서 글꼴, 색상, 커서를 미리 볼 수 있습니다.
  • 굵기와 줄 간격. 굵기는 가늘게, 보통(기본값), 중간 중에서 고릅니다. 그 굵기가 없는 글꼴은 보통을 쓰며, 굵은 글자는 항상 글꼴 자체의 볼드입니다. 줄 간격은 글꼴 크기의 1.0–1.4배이고 기본값은 1.18입니다. 더 높은 줄이 필요한 글꼴은 그 높이를 유지하므로 잘리지 않습니다. 모든 언어의 모든 문자가 하나의 셀 크기와 하나의 기준선을 공유합니다.
  • 글꼴에 없는 문자. 중국어, 일본어, 한국어는 macOS 자체 글꼴에서 가져옵니다: 한자는 시스템 언어에 따라 PingFang SC, PingFang TC, Hiragino Sans, Apple SD Gothic Neo에서, 가나는 언어와 관계없이 Hiragino Sans에서, 한글은 Apple SD Gothic Neo에서 옵니다. 직접 고른 글꼴로 그리고 싶다면 — 예를 들어 영문은 Menlo, 한글은 D2Coding이나 나눔고딕코딩 — CJK 글꼴(font-family-cjk)에서 고르세요. 중국어, 일본어, 한국어 문자가 있는 설치된 글꼴은 고정폭이든 아니든 모두 나열됩니다. 그 글꼴은 해당 문자만 그리며, 두 셀의 가운데에 놓이고, 셀 크기는 기본 글꼴이 정합니다. 이모지는 Apple Color Emoji에서 옵니다. 이모지를 가능하면 단색으로 설정하면, Apple Symbols나 Menlo에 텍스트 글리프가 있을 때 그것을 씁니다. 전각 문자는 두 셀의 가운데에 놓입니다. 없는 문자에 다른 글꼴 사용을 끄면 고른 글꼴만 보이며, 글리프가 없는 곳은 상자로 표시됩니다.
  • 너비가 모호한 문자. 설정 ▸ 터미널 ▸ 너비가 모호한 문자는 ±, §, 그리스 문자, 키릴 문자 등 동아시아 모호 폭 문자를 두 셀 너비로 만듭니다. CJK 터미널용으로 작성된 소프트웨어를 위한 것입니다. 이후에 출력되는 내용부터 적용되며, 텍스트 너비를 직접 재는 셸이나 편집기는 여전히 한 셀로 셀 수 있습니다.
  • 밑줄. 프로그램은 한 줄, 두 줄(SGR 21 또는 4:2), 물결(SGR 4:3, Neovim의 진단) 밑줄을 그릴 수 있습니다. 점선과 파선은 한 줄로 그립니다. 깜박이는 텍스트(SGR 5)는 속성은 유지하지만 애니메이션하지 않습니다.
  • 확대/축소. ⌘= / ⌘− / ⌘0 또는 핀치로 글자를 키우거나 줄이거나 설정한 크기로 되돌리며, 현재 윈도우에만 적용됩니다. 확대/축소는 설정 파일을 바꾸지 않습니다. 글꼴을 바꿔도 윈도우가 움직이거나 크기가 바뀌지 않습니다: 보이는 행과 열이 윈도우에 맞춰 다시 정해지고, 셀에 못 미치는 나머지는 마지막 행 아래에 배경으로 보입니다.
  • 테마. 내장 테마는 corta, solarized, mono 세 가지이며 각각 라이트와 다크가 있습니다. appearance = auto는 macOS가 바뀌는 대로 따라갑니다. 라이트 모드와 다크 모드의 테마는 설정 → 테마에서 따로 고릅니다 — 라이트에 Solarized, 다크에 Corta라면 theme = light:solarized,dark:corta입니다. 전환하면 윈도우가 새 색으로 부드럽게 바뀝니다. **보기 ▸ 테마 편집기…**나 설정 파일에서 직접 테마를 정의할 수도 있고, 기존 테마를 상속해 색 몇 개만 바꿀 수도 있습니다(Themes).
  • 유니코드. 중국어, 일본어, 한국어 텍스트는 두 열을 차지하며 나머지와 줄이 맞습니다. 이모지, 결합 문자, 국기, 이모지 시퀀스는 각각 하나의 클러스터입니다. 글꼴에 없는 문자는 시스템 대체 글꼴에서 옵니다. 표준화된 이모지 표현 시퀀스(텍스트 문자 뒤에 VS16, 예: ⚠️, ✍️)는 두 열을 차지하고, 텍스트 표현은 좁게 유지됩니다.
  • 입력기. 병음, 가나, 한글을 비롯한 macOS의 모든 입력기가 제자리에서 조합되며, 후보 윈도우는 커서 옆에 나타납니다.
  • 트루 컬러. 24비트 색상, 256색 팔레트, 굵게, 기울임, 밑줄, 취소선, 흐리게, 반전.
  • ⌥를 Meta로. 기본값은 꺼짐이라 ⌥는 자판 배열의 문자를 입력합니다. Emacs 스타일의 Meta 키를 원하면 option-as-meta = true로 설정하세요.
  • 벨. 페인 깜박임(bell = visual) 또는 소리(bell = audible).

터미널 개인화

커서 모양

설정(⌘,) → 모양 → 커서를 엽니다. 블록, 세로선, 밑줄 중에서 고르고, 원하면 커서 깜박임을 켜세요. 기본값은 블록, 깜박임 꺼짐입니다. 세 가지 모양과 독립된 스위치로 여섯 가지 조합이 됩니다. 설정 파일에서는 cursor-shape와 cursor-blink입니다. 변경은 열려 있는 페인에 적용됩니다. 터미널 프로그램은 DECSCUSR로 자체 모양과 깜박임을 일시적으로 고를 수 있으며, 매개변수 0이나 터미널 재설정으로 설정한 기본값으로 돌아갑니다. 페인이 비활성이거나 숨겨졌거나 스크롤백을 보여 주는 동안에는 깜박임이 멈춥니다.

입력 소스 표시

포커스된 터미널은 윈도우 오른쪽 위 도구 막대에 작은 배지를 보여 줍니다: 직접 입력이 확인되면 A, 중국어는 中, 일본어는 あ, 한국어는 한입니다. 그 밖의 입력 소스는 언어 코드로 표시됩니다. 포인터를 올리면 입력 소스의 전체 이름이 보입니다. macOS가 내부 입력 모드를 알려 주지 않는 입력 소스(자체 영문 전환이 있는 서드파티 IME 등)는 중립 배지로 표시됩니다. Corta는 입력된 텍스트로 그 모드를 추측하지 않으며, 입력 소스를 바꾸지도 않습니다.

설정 ▸ 키보드 및 마우스 ▸ 입력 소스 표시에서 자동(기본값), 활성 패널에 항상 표시, 끔 중에서 고릅니다. 기본값은 라틴 문자가 아닌 자판 배열이나 IME를 켠 사용자에게만 표시합니다. 라틴 자판만 쓰는 환경은 깔끔하게 유지됩니다. 라틴 자판으로 돌아오면 옅은 배경에 조용한 A가 남습니다 — 도구 막대에서는 회색, 프롬프트 옆에서는 테마 자체의 글자 색입니다. 프롬프트 옆에서는 라틴 문자가 아닌 배열과 내장 IME 모드가 부드러운 남색이고, 도구 막대에서는 모든 입력 소스가 회색이며 글자 자체로 구별합니다. 프롬프트 옆에서는 색이 macOS가 아니라 터미널 테마의 밝기를 따릅니다. 도구 막대에서는 프로그램이 실행되는 동안(Claude Code, 편집기)에도 배지가 남습니다. 출력을 가리지 않기 때문입니다. 명령줄 오른쪽에 둔 경우, 자동 모드에서는 명령이 실행되는 동안 셸 통합이 배지를 숨기고, 항상은 명령 출력 중에도 유지할 수 있습니다. 두 프롬프트 모드 모두 스크롤백을 읽거나 대체 화면 프로그램을 쓰는 동안에는 숨깁니다.

위치 설정에서 창 도구 막대(기본값) 또는 명령줄 오른쪽을 고릅니다. 도구 막대 배지는 연결 버튼, 새 탭 버튼과 따로 있으며, 명령이 길어지거나 줄바꿈되어도 움직이지 않습니다. 끄거나 명령줄 위치를 고르면 도구 막대의 자리와 구분 간격이 사라집니다. 명령줄 위치에서는 긴 명령이 들어오면 배지를 오른쪽 끝에 둔 채 아래의 빈 줄로 옮깁니다. 안전한 줄이 없으면 숨으며, 줄을 끼워 넣거나 자식 프로세스를 스크롤하는 일은 결코 없습니다. 직접 입력과 IME 색상에는 16진수 값을 넣을 수 있고, 칸을 비우면 은은한 기본 스타일이 됩니다.

중국어 입력 소스 배지 · 긴 명령을 피하는 모습

선택 사항: 로컬 시스템 상태

설정(⌘,) → 터미널을 열고 하단 상태 표시줄 아래의 시스템 상태 표시를 켠 다음, 보고 싶은 지표를 고르세요: CPU 사용률, 시스템 부하, 메모리 사용량, 네트워크 속도, 디스크 여유 공간, 열 상태. 기본값은 꺼짐이며 지표마다 스위치가 따로 있습니다. 표시줄을 클릭하면 로컬 호스트의 이름, macOS 버전, 칩, 코어 수, 총 메모리가 보입니다. SSH 페인에서도 표시줄은 로컬이라고 표시하며, 원격 서버를 모니터링하지 않습니다. 윈도우가 좁으면 클릭해서 선택한 지표를 모두 볼 수 있습니다.

네트워크 인터페이스의 기본값은 자동입니다. 주 인터페이스 하나만 측정하므로 VPN 트래픽이 물리 트래픽에 더해지지 않습니다. 특정 인터페이스를 측정하려면 설정에 그 이름을 입력하세요. 켜진 표시줄이 모두 숨겨지면 샘플링이 멈춥니다. 열 상태는 macOS가 알려 주는 4단계이며, 온도가 아닙니다.

표시줄은 짧은 레이블, 공백 한 칸 구분, 짧은 바이트 단위를 씁니다. 전체 이름과 정밀한 값은 도구 설명, 손쉬운 사용 값, 호스트 정보 팝오버에 있습니다.

테마 만들기와 편집

설정 → 테마에서 라이트 모드나 다크 모드 옆의 새로 만들기를 누르면 그래픽 편집기가 열리고, 저장한 테마가 그 모드의 테마가 됩니다. 사본에 이름을 붙이고, 다크와 라이트를 오가며, 색상 선택기나 16진수 값으로 색을 바꿉니다. 미리보기는 갱신되지만 터미널 윈도우는 바뀌지 않습니다. 테마 저장은 테마를 적용하고 저장하며, 취소는 이전 테마를 그대로 둡니다. 사용자 테마에는 테마 편집이 있습니다. 원본 색상 복원은 현재 색상 모드를 초기화합니다. 같은 설정 파일을 직접 편집할 수도 있습니다. 그 사용자 테마가 편집기 밖에서 바뀌었다면, 저장하기 전에 편집기를 다시 여세요.

보기 → 테마 편집기는 그래픽 색상 편집을 바로 엽니다. 보기 → 로컬 호스트 정보는 선택 사항인 상태 표시줄 없이도 호스트 구성을 보여 줍니다. 같은 호스트 정보 버튼이 설정 → 터미널에도 있습니다. 모양 미리보기는 명시적인 모드 전환을 즉시 따르며, 선택한 커서 모양과 깜박임 상태를 보여 줍니다. 터미널 프로그램은 여전히 커서 스타일을 일시적으로 덮어쓸 수 있습니다.

간결한 Tab 들여쓰기(zsh)

디렉터리 제안이나 명령 기록 제안이 켜져 있으면(둘 다 기본값으로 켜짐) 표준 로컬 zsh 세션은 번들된 훅을 자동으로 불러오므로, 시작 파일을 수정할 필요가 없습니다. 사용자 지정 zsh 인수를 쓰거나 이 자동 부트스트랩을 꺼 두었다면, 설정 → 터미널에서 셸 통합을 설치하거나 업데이트한 다음 새 셸을 여세요. 훅이 불러와지면 공백뿐인 명령줄에서 Tab은 공백 네 칸을 넣습니다. 명령 텍스트 뒤의 Tab은 기존 완성 바인딩을 유지합니다. 이것은 ZLE 위젯입니다. 터미널 출력의 탭 정지는 여전히 여덟 열이고, 전체 화면 프로그램은 계속 Tab 키를 받습니다. 통합이 없으면 셸은 자체 Tab 입력 동작을 유지합니다.

언어

앱은 macOS가 Corta에 고른 선호 언어를 따릅니다: 영어, 중국어 간체, 중국어 번체, 일본어, 한국어, 독일어, 프랑스어, 스페인어, 브라질 포르투갈어. macOS에서 Corta의 앱 언어를 바꾼 뒤에는 Corta를 다시 시작하세요. 숫자 형식은 현재 지역 설정을 따릅니다.

세션이 끝났을 때

셸이 종료된 뒤에도 페인은 출력을 남겨 둡니다. 출력은 조금 어두워지고, 무엇이 어떻게 끝났는지 — 종료 코드나 종료 시그널 — 를 한 문장으로 알려 주는 패널이 나타납니다. 커서는 사라지지만 패널 주변의 스크롤, 선택, 복사, ⌘F 검색은 계속 됩니다. 새 세션은 페인에서 셸이나 프리셋을 다시 시작하고, 창 분할 닫기는 그 페인을 닫습니다. 직접 연결한 SSH 세션은 어느 호스트에 연결되어 있었는지 알려 주고 새 연결을 시작하는 다시 연결을 제공합니다. ssh의 종료 코드 255는 네트워크가 끊겼거나 호스트가 응답하지 않는 것으로 설명됩니다. 두 버튼 모두 위의 출력을 지우며 — 패널에 그렇게 적혀 있습니다 — 새 세션은 페인의 현재 크기와 글꼴 크기로 시작합니다. Python 같은 프로그램을 끝내고 살아 있는 셸로 돌아오는 것은 터미널 세션이 끝난 것이 아닙니다.

세션의 입출력이 실패하거나 페인의 그리기가 멈추면 같은 패널이 다시 시도를, 연결이라면 다시 연결을 제공합니다. 시스템의 오류 문구는 세부 정보에 있습니다.

마지막 출력과 복구 동작을 남겨 둔 종료된 세션

스크롤백, 검색, 선택

  • 스크롤. 트랙패드나 휠, 또는 ⇧PageUp / ⇧PageDown, ⇧Home / ⇧End. 각 세션은 scrollback-lines줄의 기록을 보관합니다 (10,000).

  • 검색. ⌘F는 스크롤백 위에 검색 막대를 엽니다. ⌘G와 ⇧⌘G는 다음과 이전 일치 항목으로 갑니다. 대소문자 구분과 *(정규 표현식)는 그곳에서 전환하며, 그 상태는 설정 파일에 기억됩니다(search-case-sensitive, search-regex). 막대는 페인 오른쪽 위에 있고, 커서나 현재 일치 항목이 그 아래에 가려질 것 같으면 아래로 옮겨 갑니다. 좁은 분할에서는 페인을 덮는 대신 폭을 줄입니다. 페인마다 막대가 따로 있습니다.

  • 선택. 드래그로 선택, 두 번 클릭으로 단어, 세 번 클릭으로 줄을 선택합니다. 선택이 끝나면 바로 복사됩니다(copy-on-select). ⌘C로도 복사됩니다. 복사되면 복사한 텍스트를 따라 빛줄기가 한 번 지나갑니다(동작 줄이기가 켜져 있으면 부드러운 한 번의 깜빡임, 텍스트가 화면 밖으로 스크롤되었으면 알림). 마우스를 쓰는 프로그램 — vim, htop — 안에서도 드래그를 시작할 때 ⌥를 누르고 있으면 텍스트를 선택할 수 있습니다(mouse-override-modifier).

  • 붙여넣기. ⌘V. 붙여 넣은 텍스트에는 붙여넣기 표시가 붙으므로(괄호 붙여넣기), 이를 지원하는 셸 — zsh, fish, bash 5.1 이상 — 은 붙여 넣은 명령을 넣기만 하고 Return을 누를 때까지 실행하지 않습니다. 프로그램이 괄호 붙여넣기를 켜지 않았다면 (macOS 기본 /bin/bash 3.2는 절대 켜지 않습니다), 줄바꿈이 들어 있는 텍스트를 붙여 넣기 전에 Corta가 경고합니다. 괄호 붙여넣기가 켜져 있어도 셸로 넘기는 파이프(또는 bash <(curl …) 같은 형태), sudo, 강제 재귀 삭제, 백슬래시 줄 이음, 보이지 않거나 양방향인 제어 문자가 있으면 경고합니다. 붙여넣기나 취소를 고르기 전에 위험 설명과 텍스트 미리보기를 확인하세요. 숨은 문자는 ⟦U+202E⟧ 같은 코드로 보입니다. 이 창에서는 다시 경고하지 않음은 그 창 분할을 닫을 때까지 유지됩니다. paste-warning = always이면 여러 줄을 붙여 넣을 때마다 경고하고, off이면 이 대화상자를 띄우지 않습니다. 이것은 보수적인 패턴 검사일 뿐 셸 파서가 아니며, 다른 텍스트가 안전하다고 보장하지도 않습니다. 셸이 아직 처리 중인 큰 붙여넣기는 ⌃C로 취소할 수 있습니다: 아직 보내지 않은 부분은 버려지고, 인터럽트는 곧바로 전달됩니다.

  • 오른쪽 클릭. 클릭한 페인에서 찾기…와 명령 출력 복사를 쓸 수 있습니다. 명령 출력 복사는 클릭한 줄이 출력에 들어 있는 완료된 명령의 출력을 복사하며, 프롬프트 위, 대체 화면(전체 화면 프로그램), 셸 통합이 없을 때는 쓸 수 없습니다. 링크 위에서는 링크 열기와 링크 복사가, path:line:column 참조 위에서는 경로 열기와 경로 복사가 나옵니다. 열 때는 클릭할 때와 같은 링크 검사, 설정한 편집기, 원격 확인을 거칩니다. 마우스 보고를 쓰는 프로그램은 오른쪽 클릭을 그대로 받습니다.

  • 텍스트 내보내기…(⇧⌘S)는 선택 영역 — 선택이 없으면 스크롤백과 화면 전체 — 를 파일로 저장합니다.

  • 지우기. 버리는 것이 다르기 때문에 명령이 세 가지입니다:

    명령화면스크롤백모드와 색상
    화면 지우기(⌘K)지움. 준비된 셸 프롬프트와 입력은 유지유지유지
    기록 지우기유지버림유지
    터미널 재설정지움버림초기화

    셸 통합이 있으면 화면 지우기는 준비된 프롬프트와 입력 전체를 맨 위로 옮기고, 편집 커서, 줄바꿈, 색상, 전각 문자를 유지합니다. 키를 보내지 않으며 입력을 실행하지도 않습니다. 프롬프트가 아직 출력되는 중이거나, 명령이 실행 중이거나, 셸에 준비된 프롬프트 표시가 없으면 평소처럼 지우고 왼쪽 위로 돌아갑니다. vim 같은 대체 화면 프로그램은 그대로 둡니다. 프롬프트가 기록으로 스크롤된 편집기도 입력 일부가 지워지지 않도록 그대로 둡니다.

    기록 지우기와 터미널 재설정은 먼저 묻고 몇 줄을 버릴지 알려 줍니다 — 스크롤백이 비어 있거나 confirm-close = false로 질문을 꺼 둔 경우는 예외입니다.

링크와 파일 참조

  • URL은 포인터를 올리면 대상과 ⌘-클릭 안내를 보여 주고, ⌘-클릭으로 열립니다. 일반 클릭으로 열려면 link-activation = click으로 설정하세요. 링크 위에서 ⌘를 누르고 있으면 — 프로그램이 명시적으로 표시한 링크(OSC 8, ls --hyperlink가 출력하는 것)도 포함해 — 밑줄이 그어지고 클릭하기 전에 실제 대상이 도구 설명으로 보입니다. 클릭하면 바로 열립니다.
  • 파일 참조. 프로그램 출력 속 path:line:column — 컴파일 오류, 테스트 실패 — 은 ⌘-클릭으로 편집기에서 열립니다. open-file-command로 어떤 편집기를 쓸지 알려 주되, 편집기의 전체 경로로 시작하세요. 예: open-file-command = /usr/local/bin/code --goto {file}:{line}:{column} (Following a file reference).

어떤 파일 참조든 열려면 open-file-command 설정이 필요합니다. Corta는 출력에서 얻은 파일을 시스템 기본 앱으로 열지 않습니다: 열기만 해도 코드가 실행되는 파일 형식이 있기 때문입니다.

셸 통합

셸 통합을 통해 Corta는 각 명령이 어디서 시작하고 끝나는지 알 수 있습니다. 설정 ▸ 터미널 ▸ 셸 통합에서 설치하세요: 셸의 시작 파일 — ~/.zshrc, bash는 ~/.bashrc와 ~/.bash_profile(또는 bash가 읽는 로그인 파일), 또는 ~/.config/fish/config.fish — 에 표시가 붙은 블록 하나를 추가하며, 제거는 정확히 그 블록만 빼냅니다. 시작 파일 블록은 버튼을 눌렀을 때만 설치됩니다. **디렉터리 제안(zsh)**이나 **명령 기록 제안(zsh)**이 켜져 있으면(기본값) 표준 로컬 zsh 세션은 시작 파일을 편집하지 않고도 Corta에 번들된 훅을 자동으로 불러옵니다. 사용자 지정 zsh 인수, bash, fish, 원격 셸은 이 자동 부트스트랩을 쓰지 않습니다. 그런 셸에서 명령 경계를 얻으려면 호환되는 훅을 설치하세요.

설정에 통합이 오래되었다고 나오면 업데이트를 고르고 새 셸을 여세요. 앱만 업데이트해서는 이전에 시작 파일에 설치한 블록이 바뀌지 않습니다.

훅이 불러와지면(자동이든 시작 파일 설치든):

  • 프롬프트 표시. 각 프롬프트 왼쪽에 가는 선이 그어지며, 명령이 성공하면 초록, 실패하면 빨강입니다. 빈 Return은 선을 긋지 않고 완료된 명령 기록 항목도 만들지 않습니다.
  • 이동. ⌘↑ / ⌘↓는 명령 사이를 오가며, 프로그램이 iTerm2의 OSC 1337;SetMark로 남긴 표시에서도 멈춥니다. ⇧⌘↑ / ⇧⌘↓는 실패한 명령 사이를 오갑니다.
  • 명령의 출력. 명령 팔레트에서: 마지막 명령 출력 복사, 실행 중인 명령 출력 스냅샷(빌드가 지금까지 출력한 것), 파일로 명령 출력 내보내기…, 그리고 마지막으로 출력된 path:line을 여는 명령 출력의 파일 참조 열기.
  • 명령 기록. **명령 기록 검색…**은 모든 명령을 시각, 종료 상태, 디렉터리와 함께 나열합니다. 채우기는 명령을 프롬프트에 다시 넣고, 실행은 다시 실행합니다(command-history-limit). 목록에서 전체를 보여 줄 수 없는 명령 — 여러 줄이거나, 행 끝에서 잘리거나, 탭이 들어 있는 것 — 이나 목록에 표시된 뒤 텍스트가 바뀐 명령은 실행되지 않고 채워집니다. 그래서 전체가 프롬프트에 놓이고, Return을 눌러야 실행됩니다.
  • 기록 및 정보 윈도우. 명령 기록은 호출한 윈도우 가운데에, 그 디스플레이의 사용 가능한 영역 안에서 열립니다. Corta ▸ Corta 정보는 다른 앱의 정보 윈도우처럼 그 디스플레이 가운데에 열립니다. 이미 열린 윈도우는 옮겨 둔 자리에 그대로 있습니다. 명령 기록은 크기가 고정되어 검색과 디렉터리 / 프로젝트 / 상태 / 호스트 필터가 항상 보이며, 결과가 없으면 명령 없음과 결과 수를 보여 줍니다.
  • 긴 작업 알림. notify-on-long-task = true이면 notification-threshold초(30)보다 오래 걸린 명령이 그 윈도우가 키 윈도우가 아닐 때 끝나면 알림을 보냅니다. macOS가 Corta에 알림 권한을 준 경우에 한합니다. 설정 ▸ 일반에서 켜고, 그곳에서 권한 상태를 확인하세요. 알림을 클릭하면 그 명령으로 이동합니다.

셸 통합이 없으면 이 명령들은 아무 일도 하지 않는 대신 비활성화되며, 알림은 입력과 출력을 바탕으로 한 추측으로 대체됩니다.

작업 디렉터리

셸이 알려 주면(셸 통합이 알려 줍니다) Corta는 셸이 있는 디렉터리를 압니다. 명령 팔레트에서:

  • Finder에서 작업 디렉터리 표시와 작업 디렉터리 경로 복사.
  • 상위 디렉터리로 이동과 프로젝트 루트로 이동(.git이 있는 가장 가까운 폴더)은 cd를 대신 입력해 줍니다 — 실행 중인 명령이 없고 프롬프트가 비어 있을 때만.
  • 새 창에서 상위 디렉터리 열기와 새 창에서 프로젝트 루트 열기는 페인을 분할하고 그곳에서 셸을 시작합니다.

제목 막대의 폴더 아이콘도 그 디렉터리입니다: 끌어 놓거나, ⌘-클릭해서 경로를 볼 수 있습니다. directory-history가 켜져 있으면 (기본값) Corta는 명령을 실행한 로컬 디렉터리를 기록합니다. 아직 앱 안에서 그 목록을 보여 주는 곳은 없습니다. 설정 ▸ 개인정보 보호 및 보안 ▸ 기록에서 개수를 확인하고 지울 수 있습니다.

디렉터리 제안(zsh)

Corta에는 디렉터리 제안이 들어 있으며, 표준 로컬 zsh 세션에서 기본으로 켜져 있습니다. cd 를 입력하면 현재 디렉터리의 폴더가 입력 옆의 작은 패널에 보입니다. 공간이 있으면 입력 아래에, 페인 아래쪽 가까이에서는 위에 나타납니다. 색이 들어간 배경과 테두리를 가진 둥근 유리 캡슐이라 이전 출력과 구별되며, 출력 일부를 잠시 가릴 수 있지만 터미널 줄을 차지하지는 않습니다. 계속 입력하면 폴더가 걸러지고, 커서 옆에 흐린 나머지 부분이 나타납니다. 예를 들어 cd De는 Developer/를 제안할 수 있습니다. 제안은 미리보기일 뿐이며, 받아들이기 전에는 명령의 일부가 아닙니다.

cd 옆의 디렉터리 후보 패널과 성공, 실패, 중단된 명령 표시

제안이 보이는 동안:

키동작
왼쪽 / 오른쪽입력 커서를 옮기는 대신 이전 / 다음 폴더를 고릅니다.
Tab고른 디렉터리를 입력에 채웁니다. 실행하지는 않습니다. 제안이 보이는 동안에는 기본 Tab 완성을 대신합니다.
Esc현재 입력의 제안을 닫습니다. 왼쪽 / 오른쪽으로 명령을 편집하기 전에 Esc를 누르세요. 한 번 더 누르면 셸 자체의 Esc 동작입니다. bindkey -v에서는 같은 입력으로 명령 모드에도 들어갑니다.
위 / 아래셸의 일반적인 명령 기록 탐색을 유지합니다.
Shift+Tab셸에 설정된 바인딩으로 그대로 넘깁니다.
Return실제로 입력한 것만 실행합니다. 흐린 제안을 자동으로 받아들이지 않습니다.

상대 경로, 하위 디렉터리, ~/ 경로를 걸러 낼 수 있습니다. Tab으로 /로 끝나는 폴더를 채우면 그 하위 디렉터리가 다음 후보가 됩니다. 반복해서 더 깊은 경로를 만들고, cd를 실행하고 싶을 때 Return을 누르세요. 폴더만 제안하므로 파일만 있는 폴더에는 다음 후보가 없습니다. 점으로 시작하면 숨김 폴더도 나타납니다. 복잡한 셸 표현식에는 기본 완성이 쓰입니다. bash와 fish는 자체 완성을 유지합니다. 제안은 Corta가 자동 zsh 훅으로 시작한 셸에서만 나타나며, 셸 통합을 설치했더라도 원격 기기나 사용자 지정 셸 명령에서는 나타나지 않습니다.

선택 사항: 끄기. 설정 ▸ 터미널 ▸ 셸에서 **디렉터리 제안(zsh)**을 끄거나, 설정 파일에 다음을 넣으세요:

directory-completion = false

Corta의 제안과 키 가로채기가 즉시 꺼지고, 셸의 기본 편집과 완성을 쓸 수 있게 됩니다. 다시 켠 뒤에는 셸을 다시 여세요. 자동으로 불러오는 로컬 훅에는 지워야 할 시작 파일 블록이 없습니다. 셸 통합도 직접 설치했다면, 그 제거 버튼이 별도의 시작 파일 블록을 지웁니다. 디렉터리 제안을 끄는 데 그것을 제거할 필요는 없습니다.

명령 기록 제안(zsh)

표준 로컬 zsh 세션에서 이전 명령의 앞부분을 입력하면 나머지가 커서 뒤에 흐리게 보입니다. 일치하는 한 줄짜리 명령 중 가장 최근 것이 선택됩니다. 예를 들어 git status를 실행한 뒤 git st를 입력하면 atus를 제안합니다. 받아들이기 전까지는 미리보기일 뿐입니다.

커서 뒤에 흐리게 보이는 로컬 zsh 기록의 나머지 부분

키힌트가 보일 때의 동작
오른쪽 / End제안된 나머지를 입력 끝에 붙입니다. 실행하지는 않습니다.
Esc입력이 바뀔 때까지 힌트를 닫습니다. bindkey -v에서는 같은 입력으로 명령 모드에도 들어갑니다.
Tab / Shift+Tab / 위 / 아래셸의 평소 완성과 기록 키 설정을 그대로 씁니다.
Return실제 입력만 실행합니다.

입력이 비어 있거나, 커서가 줄 가운데 있거나, 여러 줄짜리 기록 항목이면 힌트가 나오지 않습니다. 디렉터리 제안이 켜져 있으면 cd 에서는 디렉터리 제안이 나오고, 꺼져 있으면 기록 힌트가 나옵니다. 입력기로 조합하는 동안에는 힌트를 숨기고 입력기 자체의 후보를 쓸 수 있게 합니다. zsh-autosuggestions가 불러와져 있으면 명령 기록 제안은 그쪽에 맡깁니다. bash, fish, 원격 셸, 사용자 지정 시작 명령은 각자의 편집 방식을 유지합니다.

기본값은 켜짐입니다. **설정 ▸ 터미널 ▸ 셸 ▸ 명령 기록 제안(zsh)**을 끄거나 history-suggestions = false로 설정하면 힌트가 바로 사라지고 기본 키 동작으로 돌아갑니다. 다시 켠 뒤에는 셸을 새로 여세요. 디렉터리 제안에는 별도의 스위치가 있습니다. 둘 다 임시 시작 래퍼를 쓰며 시작 파일을 바꾸지 않습니다. Corta는 zsh의 메모리 속 기록을 쓰고, HISTFILE을 읽지 않으며, 제안한 텍스트를 기록하거나 저장하지 않습니다. 유니코드 128자를 넘는 나머지는 보여 주지 않습니다.

원격 작업: SSH와 SFTP

Corta는 시스템의 OpenSSH를 씁니다 — ~/.ssh/config, 키, 에이전트, ProxyJump가 모두 적용됩니다 — 그리고 자체 SSH 구현은 없습니다.

  • 호스트 배지. 다른 기기에 연결된 페인은 윈도우 제목 앞에 *원격:*을 표시합니다. 원격 셸이 호스트와 폴더를 알려 주면 (그쪽에 셸 통합이 설치되어 있으면) 그것을, 연결 시트에서 연결했다면 입력한 대상을 보여 줍니다. 그렇지 않으면 어느 호스트인지 모른 채 페인이 원격이라는 것만 알려 줍니다.
  • 다시 연결. ssh나 mosh 세션이 끝나면 호스트에 다시 연결이 같은 명령을 새 연결로 다시 실행합니다.
  • 연결. 도구 막대의 지구본 버튼은 호스트에 연결 시트를 엽니다. 위쪽의 터미널 / 파일 (SFTP) 전환으로 SSH 터미널이나 파일 브라우저를 고릅니다. 호스트 — 이름, 주소, user@host 또는 SSH 별칭 — 를 입력합니다. 호스트 입력란, 모드 전환, 제안, 버튼에는 둥근 유리 효과가 쓰입니다. 윈도우가 작으면 시트가 스크롤되어 모든 항목과 동작에 닿을 수 있습니다. 고급에는 사용자, 포트, 개인 키가 있으며, 비워 두면 ~/.ssh/config와 OpenSSH 기본값이 정합니다. 고른 키가 가장 먼저 제시되며, ssh-agent에 있는 다른 키는 시도하지 않습니다. 시트에는 최근 연결(포트, 키, 마지막으로 쓴 때 포함)과 ~/.ssh/config의 Host 이름이 나열됩니다. git 전용 호스트(github.com, 또는 User git인 Host)는 빠지며, 목록에 무엇을 숨겼는지 표시됩니다. 입력하면 목록이 좁혀지고, 하나를 클릭하면(또는 호스트 칸에서 ↑와 ↓를 쓰면) 항목이 채워지며, 두 번 클릭하거나 Return을 누르면 연결합니다. 터미널 연결은 실제로 이루어진 뒤에야 최근 목록에 들어갑니다 — 거부한 호스트나 셸이 없는 호스트는 들어가지 않습니다. 최근 호스트에 포인터를 올려 ✕를 클릭하거나 오른쪽 클릭하면 잊습니다. 설정 ▸ 개인정보 보호 및 보안 ▸ 최근 호스트에서 모두 지울 수 있습니다.
  • 이 페인의 파일. 다른 컴퓨터에 연결된 페인에서 열면 시트는 먼저 그 호스트의 파일을 제공합니다. Return을 누르거나 파일 탐색을 눌러 엽니다.
  • **원격 파일 찾아보기…**는 페인의 호스트에 대한 SFTP 브라우저를 엽니다: 목록, 업로드, 다운로드, 이름 바꾸기, 삭제. 처음 연결하는 호스트는 호스트 이름을 확인해 달라고 묻습니다. 전송은 중단된 뒤에 이어서 진행되며, 묻지 않고 파일을 덮어쓰지 않습니다. 폴더를 내려받는 중에 어떤 이름이 .corta-part 임시 파일과 겹치면, 기존 파일을 지키기 위해 다운로드가 멈춥니다. 다른 대상을 고르거나 그 파일을 따로 해결하세요. 폴더 전체 덮어쓰기가 부분 파일을 삼키는 일은 없습니다.
  • 브라우저에서는 Finder처럼: ⌘[와 ⌘]는 뒤로와 앞으로, ⌘↑는 상위 폴더, ⌘R은 새로 고침, ⇧⌘G(또는 경로 클릭)는 경로 입력, ⇧⌘N은 새 폴더, ⇧⌘.은 숨김 파일 보기입니다. 열 제목을 클릭하면 정렬됩니다. 행을 오른쪽 클릭하면 동작이 나오고, 폴더를 두 번 클릭하면 열립니다. Finder에서 파일을 목록에 — 또는 폴더 행에 — 놓으면 업로드입니다. 끄는 동안 목록(또는 그 행)에 테두리가 생기고 파일이 어디로 갈지 표시됩니다. 파일을 Finder로 끌어내면 다운로드입니다. 전송은 도구 막대의 화살표 버튼 아래에 있으며 속도, 남은 시간, Finder에서 보기가 있습니다.
  • 원격 파일 편집. 브라우저의 편집 — 또는 원격 페인에서 path:line을 ⌘-클릭 — 은 사본을 내려받아 편집기에서 엽니다. 먼저 설정 ▸ 터미널 ▸ 파일 열기 명령을 편집기 실행 파일의 절대 경로와 {file}, {line}, {column} 자리 표시자로 설정하세요(예시). 변경 내용 업로드는 별도의 명시적인 단계이며, Corta는 그동안 원격 파일이 바뀌었는지 먼저 확인합니다. 64 MiB가 넘는 파일은 이 방식으로 복사하지 않습니다. 진행 상황을 보여 주고 취소할 수 있는 브라우저에서 내려받으세요. 30일 동안 아무도 열거나 바꾸지 않은 사본은 다음에 원격 편집을 쓸 때 지워집니다. 아직 업로드하거나 버리지 않은 변경이 있는 사본은 남습니다.
  • 이름. 제어 문자, 오른쪽에서 왼쪽으로 쓰는 문자, 폭이 없는 문자가 들어 있는 원격 이름은 그 문자를 �로 보여 주고, 내려받을 때는 _로 저장합니다. 그래서 어떤 이름이 다른 이름으로 위장할 수 없습니다.

서버가 암호, 키 암호문, 일회용 코드를 요구하거나, 새 호스트라서 그 키에 대한 결정이 필요하면, 브라우저가 그 윈도우의 대화상자에서 묻고 답을 OpenSSH에 넘깁니다. 아무것도 저장하지 않으므로 다시 연결하면 또 묻습니다. 암호 대화상자의 연결 취소는 그 연결을 끝내고 호스트 칸으로 돌아갑니다 — 빈 암호로 보내지 않습니다. 키 암호문의 취소는 그 키만 건너뛰며, ssh는 다음 로그인 방법으로 넘어갑니다. 호스트 키 대화상자에는 지문이 보이고, 기본 버튼은 취소입니다. ssh-agent나 키체인이 가진 키, 또는 터미널에서 이미 열어 둔 ControlMaster 연결이 있으면 묻지 않고 로그인합니다.

연결에 실패하면 이유를 한 문장으로 알려 줍니다 — 암호나 키가 받아들여지지 않았거나, 호스트가 응답하지 않았거나, 호스트 키를 알 수 없거나 바뀌었거나, 서버가 SFTP를 제공하지 않는 경우 — ssh의 원래 문구는 세부 정보에 있고, 다시 시도 또는 연결 편집을 고를 수 있습니다.

원격 편집 업로드는 크기와 수정 시각뿐 아니라 원격 내용도 비교하고, 승인한 비공개 스냅숏을 보냅니다. 승인 프롬프트 뒤에 로컬 편집을 다시 저장하면 Corta가 새로 결정을 묻습니다. 업로드 중의 저장은 보류 상태로 남습니다. 연결이 실패한 뒤에는 다음 편집이나 업로드가 다시 연결하고, 실패한 업로드는 보류 중인 결정을 유지합니다. 연결된 뒤 120초가 지나도 끝나지 않는 작업은 중단되고 업로드를 다시 묻기 때문에, 연결이 멈춰도 편집이 끝없이 걸려 있지 않습니다. 앱 데이터를 지우기 전에 결정하지 않은 로컬 편집을 보관해 두세요. 저장 데이터 정책(영어)을 보세요.

터미널 속 이미지

kitty 그래픽 프로토콜을 쓰는 프로그램은 이미지를 인라인으로 보여 줄 수 있습니다:

kitten icat --transfer-mode=stream picture.png

이미지는 텍스트와 함께 스크롤되고, 스크롤백에 남으며, 화면 지우기나 기록 지우기로 주변 텍스트와 함께 지워집니다. 프로그램의 스크롤 영역 안 — 예를 들어 전체 화면 프로그램의 페인 — 에서는 이미지가 영역의 텍스트와 함께 움직이고, 영역 가장자리를 넘어간 부분은 잘립니다. 이미지는 한 변 최대 8192픽셀, 전체 최대 1600만 픽셀입니다. 이 프로토콜을 지원하는 다른 도구, 예를 들어 timg나 chafa도 이미지 자체를 보낸다면 쓸 수 있습니다: Corta는 설계상 프로그램이 지정한 파일 경로를 읽기를 거부하며, 애니메이션은 지원하지 않습니다. 페인보다 큰 그림은 페인에 맞게 축소됩니다.

명령 팔레트

⇧⌘P는 명령 팔레트를 엽니다: Corta의 모든 명령을 이름으로 검색할 수 있고, 옆에 단축키가 보입니다. 몇 글자를 입력하고 Return을 누르세요. 글자는 순서대로 맞으면 되며 붙어 있을 필요는 없습니다(spr로 Split Pane Right를 찾습니다). 그룹 이름(panes)이나 명령의 설정 이름(new-tab)으로도 찾을 수 있습니다. 최근에 실행한 명령이 먼저 나옵니다. 다른 윈도우를 클릭하면 팔레트가 닫히고 그 윈도우가 앞에 남습니다. 기본 단축키가 없는 명령에 닿는 가장 빠른 방법입니다.

macOS 연동

  • 단축어. 두 가지 동작: Corta 윈도우 열기(폴더 지정 가능), Corta 윈도우 앞으로 가져오기. 어느 것도 셸에서 명령을 실행하지 않습니다.
  • 서비스. 선택한 터미널 텍스트를 서비스 메뉴에 넘깁니다.
  • 보안 키보드 입력. 셸 ▸ 보안 키보드 입력은 Corta가 앞에 있는 동안 다른 앱이 키 입력을 읽지 못하게 막습니다 — 암호 입력용입니다. 제목 막대의 자물쇠는 실제로 켜졌을 때 보입니다.
  • VoiceOver는 터미널의 텍스트를 읽고 포커스된 페인을 따라갑니다.
  • 프로그램의 클립보드 쓰기. 기본값은 꺼짐입니다. allow-clipboard-write = true이면 프로그램 — tmux 안이나 ssh 너머의 것도 포함 — 이 클립보드에 텍스트를 놓을 수 있습니다(OSC 52). 다시 읽어 갈 수 있는 것은 없습니다.

속도와 배터리

Corta는 빠른 방법을 스스로 고릅니다. 여기서는 설정이 필요 없습니다. 무엇을 하는지 적어 두니, 무엇을 기대할 수 있는지 참고하세요.

  • 입력할 때는 디스플레이의 최대 주사율을 씁니다. 입력하거나, 붙여 넣거나, 입력기로 조합하는 동안 Corta는 디스플레이의 최대 프레임률 — ProMotion 패널이라면 120 Hz — 을 요청하고, 마지막 키 입력 1초 뒤에 내려놓습니다. 입력하지 않을 때는 저전력 모드, 비활성 윈도우, 열 부담이 상한을 다시 낮춥니다. 열 부담이 심각하면 항상 낮춥니다.
  • macOS 27 이상에서는 전체 화면에 페인 하나일 때 지연을 줄일 수 있습니다. 이때 Corta는 윈도우 서버의 컴포지터를 건너뛰고 프레임을 디스플레이에 바로 표시합니다: 측정한 Mac에서 키 입력부터 화면 표시까지 약 한 프레임 줄었습니다. 분할, 찾기 막대 등 텍스트 위에 그려지는 것이 보이는 동안에는 컴포지터가 돌아옵니다. macOS 26에서는 WindowServer 충돌(#380)에 대한 호환 조치로 모든 윈도우가 클래식 큐의 복사 경로를 씁니다. 위의 지연 수치는 그 OS에서 측정하지 않았습니다. (실행 환경에 CORTA_DIRECT_FULLSCREEN=0을 주면 전체 화면 관련 변경은 꺼지지만, macOS 26 호환 경로는 꺼지지 않습니다.)
  • 출력 읽기와 표시는 따로 움직입니다. PTY 리더는 계속 파싱하고, 화면은 디스플레이의 속도에 맞춰 최신 상태를 보여 줍니다. 측정한 코어 입력 벤치마크는 317.3 MiB/s에 이르렀습니다. 이 수치는 PTY I/O, 렌더링, 표시를 포함하지 않으며, 실제 빌드 로그나 yes의 속도를 약속하지 않습니다.
  • 스크롤과 전체 화면 프로그램은 바뀐 부분만 다시 그립니다. vim, less, tmux, 상태 줄은 이미 그려진 것을 밀어서 스크롤합니다.
  • 긴 스크롤백도 작게 유지됩니다. 기록은 화면 밖으로 밀려날 때 메모리에서 압축됩니다 — 120열 100,000줄의 메모리 증가는 약 11 MiB로 측정되었습니다 — 그리고 검색, 복사, 크기 조절은 압축된 데이터에 바로 작동합니다.
  • 유휴는 정말 유휴입니다. 깜박이는 커서는 Corta가 다시 그리는 대신 macOS가 애니메이션하고, 유휴 셸은 주기적인 깨우기를 일으키지 않으며, 가려졌거나 최소화된 윈도우는 그리기를 완전히 멈춥니다.
  • 숨겨진 페인은 양보합니다. 페인이 숨겨지고 2초 뒤 — 다른 탭, 최소화된 윈도우 — 그 출력은 백그라운드 우선순위로 읽혀, 보고 있는 것과 경쟁하지 않습니다. 잃는 것은 없으며, 그 페인에 입력하거나 붙여 넣으면 즉시 원래 우선순위로 돌아옵니다.

측정값과 측정 방법은 Performance(영어)에 있습니다.

설정과 설정 파일

모든 설정은 텍스트 파일 하나, ~/.config/corta/config에 있습니다. Corta ▸ 설정…(⌘,)은 같은 파일을 편집하며, 파일을 직접 편집하는 것도 똑같이 지원됩니다:

설정은 시스템 설정처럼 범주 사이드바로 구성됩니다:

  • 일반 — 새 윈도우 크기, 윈도우 복원, 닫기 확인, 긴 작업 알림, 업데이트.
  • 모양 — 라이트 또는 다크, 시스템 고정폭 글꼴, 크기와 실시간 미리보기, 커서 모양/깜박임, 그래픽 테마 편집.
  • 터미널 — 스크롤백, 명령 기록 한도, 벨, 검색 기본값, 파일 열기 명령, 셸 통합, 선택 사항인 시스템 상태와 로컬 호스트 정보.
  • 키보드 및 마우스 — Option을 Meta로 사용, 링크 여는 방식, 프로그램이 마우스를 쓰는 동안 텍스트를 선택하는 보조 키, 선택 시 복사, 입력 소스 표시의 모드와 색상.
  • 단축키 — 모든 명령의 키. 바꾼 것 옆에는 재설정 화살표가 나타납니다.
  • 연결 — 호스트에 연결, 저장된 프리셋.
  • 개인정보 보호 및 보안 — 프로그램의 클립보드 쓰기(OSC 52), 보안 키보드 입력, 디렉터리 기록, 최근 호스트.

이 컨트롤들은 같은 설정 파일을 편집합니다. 사용자 테마의 색은 그래픽으로도, 파일로도 편집할 수 있습니다.

윈도우 도구 막대의 지구본 버튼은 터미널이든 파일이든 호스트에 연결할 때 씁니다. 윈도우에 시트를 열어 호스트 — 설정의 별칭도 쓸 수 있습니다 — 를 입력하고, 사용자, 포트, 개인 키는 고급에 있습니다. 최근 호스트와 설정된 호스트를 제안하며, 사용자, 포트, 키를 비우면 OpenSSH 설정을 따릅니다. 원격 페인에서 열면 먼저 그 호스트의 파일을 제공합니다(원격 작업).

theme = corta
appearance = auto
font-size = 14
scrollback-lines = 20000
notify-on-long-task = true
bind.equalize-panes = ctrl+cmd+e

대부분의 설정은 바로 적용됩니다. 몇 가지(윈도우 크기, 스크롤백 길이)는 다음 윈도우나 세션부터 적용됩니다. Configuration(영어)에 모든 키, 기본값, 적용 시점이 나와 있습니다.

키보드 단축키

설정 파일의 bind.<command>로 어떤 단축키든 바꿀 수 있습니다. 값을 비우면 지정이 사라지고, 그 키 입력은 터미널 안의 프로그램에 전달됩니다:

bind.equalize-panes = ctrl+cmd+e
bind.close =

도움말 ▸ 키보드 단축키는 지금 적용된 단축키를 정렬된 열로 보여 줍니다. 지정이 없는 명령은 설정 안 됨으로 표시됩니다. 터미널 컨텍스트 메뉴에도 같은 설정된 단축키가 보입니다.

셸 메뉴에는 분할, 다시 열기, 화면 지우기가 바로 있습니다. 나머지 도구는 포커스 이동, 명령 및 출력, 작업 디렉터리, 창 분할 레이아웃, 터미널 및 연결 아래에 묶여 있습니다.

이 버전 기준의 기본값입니다 — Keyboard shortcuts(영어)가 공식 목록입니다:

명령단축키
새 윈도우 / 새 탭⌘N / ⌘T
닫기⌘W
오른쪽으로 페인 분할 / 아래로 페인 분할⌘D / ⇧⌘D
포커스 이동⌥⌘ + 화살표
페인 크기 조절⌃⌘ + 화살표
페인 확대⇧⌘↩
닫은 페인 다시 열기⇧⌘T
크게 / 작게 / 실제 크기⌘= / ⌘− / ⌘0
찾기… / 다음 찾기 / 이전 찾기⌘F / ⌘G / ⇧⌘G(다음 찾기와 이전 찾기는 고정)
복사 / 붙여넣기 / 모두 선택⌘C / ⌘V / ⌘A
한 페이지 스크롤 / 맨 위 또는 맨 아래로⇧PageUp, ⇧PageDown / ⇧Home, ⇧End
이전 / 다음 명령⌘↑ / ⌘↓
이전 / 다음 실패한 명령⇧⌘↑ / ⇧⌘↓
텍스트 내보내기…⇧⌘S
화면 지우기⌘K
설정…⌘,
명령 팔레트…⇧⌘P

그 밖의 모든 명령 — 페인 균등 분할, 기록 지우기, 터미널 재설정, 원격 파일 찾아보기…, 명령 출력과 작업 디렉터리 명령 — 에는 기본 키가 없으며, 명령 팔레트에서 검색 한 번이면 찾을 수 있습니다. Keyboard shortcuts(영어)에 각 명령의 bind. 이름이 포함된 전체 표가 있습니다.

문제가 생겼을 때

문제 해결은 무언가 실패했을 때 보이는 것과 고치는 방법을 다룹니다 — macOS가 열지 않는 다운로드, 거부되는 글꼴, 아무 반응이 없는 단축키. Features and limitations(영어)에는 Corta가 아직 하지 못하는 것이 나와 있습니다. 그 밖의 것은 GitHub Issues에 신고해 주세요. 사용법 질문은 Discussions → Q&A로 가거나, Discord의 #help에서 물어보세요.

코딩 에이전트 상태와 프로그램 알림

지금 전용 작업 상태 연동이 있는 명령줄 도구는 Claude Code 하나뿐입니다. macOS arm64에 설치한 Claude Code 2.1.310으로 개발하고 인수 테스트를 했으며, 모든 Claude 버전과의 호환을 보장하지는 않습니다. Codex, Gemini CLI, pi, Kimi, Grok Build, Qwen Code, OpenCode, Aider에는 Corta의 전용 작업 상태 어댑터가 없습니다. 범용 알림 / 진행률 프로토콜은 어떤 프로그램이든 쓸 수 있으며, 프로세스 감지는 완전한 에이전트 연동이 아닙니다. 호환 범위와 검증 한계(영어)를 참고하세요.

기본적으로 에이전트 페인은 탭에서 작업 중(강조 색), 사용자 응답 대기(주황), 완료(초록), 실패(빨강), 유휴 상태(회색), 상태 알 수 없음(속이 빈 회색 점)을 구별합니다. 유휴 상태는 작업 시작 전이나 멈춘 뒤를 포함해 진행 중인 차례가 보고되지 않았다는 뜻이며, 완료를 뜻하는 것은 명시적인 done뿐입니다. 진행률 고리는 OSC 7501이나 OSC 9;4 보고를 따릅니다. Dock은 대기 중인 페인 수를 세고 전체 진행률을 보여 줍니다. 명령 팔레트나 윈도우 → 에이전트를 열면 모든 윈도우의 에이전트 페인을 찾을 수 있고, 항목을 고르면 그 페인에 초점이 갑니다. 팔레트에서는 둘러볼 때 에이전트가 맨 앞에, 검색할 때는 일치하는 명령 뒤에 나옵니다. Return은 여전히 강조된 명령을 실행하므로, 에이전트로 이동하려면 화살표 키로 그 항목까지 옮기세요. 한 페인에 에이전트가 여럿이면 가장 급한 상태를 보여 줍니다. 상태와 앱 이름은 프로그램이 스스로 보고한 것이며 검증된 신원이 아닙니다. 범용 OSC 21337 메타데이터는 작업 제목이 비어 있을 때 현재 상태에 표시 색과 상태 라벨을 덧붙일 수 있습니다. 작업 상태가 없으면 라벨은 상태 알 수 없음으로 남습니다. status-color는 메타데이터로만 보관하며, 네이티브 탭과 메뉴 글자는 시스템 색을 씁니다. Claude Code 2.1.310은 이 메타데이터 채널을 켜지 않습니다.

평범한 대화형 세션에서 Claude Code의 OSC 7501 상태 확인에는 설정이 필요 없습니다. Claude Code 2.1.295 이상이 필요하며, Corta가 확인한 기준은 그 범위 전체가 아니라 2.1.310입니다. tmux의 allow-passthrough를 켜도 상태는 tmux를 통과하지 않습니다. Claude가 직접 tmux를 확인하기 때문입니다. Claude의 백그라운드 세션은 연결된 동안에도 OSC 7501을 보고하지 않으며, 숨겨진 Corta 페인에서 대화형 세션을 돌리는 것과는 다릅니다. 확인과 보고를 허용하려면 CLAUDE_CODE_DISABLE_TERMINAL_TITLE을 해제하세요. Anthropic의 터미널 요구 사항을 참고하세요. 숨겨진 Corta 페인이 권한을 요청하거나, 질문하거나, 로그인이 필요하면 Corta는 고정된 메시지를 알립니다. Claude Code 자체의 메시지 문구를 받으려면 Claude의 settings.json이나 /config → Local notifications에서 preferredNotifChannel을 ghostty(OSC 777), iterm2(OSC 9), kitty(OSC 99) 중 하나로 설정하세요. auto는 Corta용 메시지 채널을 고르지 않습니다. terminal_bell은 BEL을 보내고, iterm2_with_bell은 OSC 9에 BEL을 더하며, notifications_disabled는 Claude 자체 알림 채널을 끄지만 Corta의 7501 주의 알림은 끄지 않습니다. Corta는 여전히 Corta로 자신을 밝힙니다. 이 Claude 전용 프로토콜 세부 사항은 확인한 기준 버전을 바탕으로 하며, 쓸 수 있는지는 설치한 Claude 버전에 따라 다릅니다. Claude의 명시적인 권한 알림은 보통 약 6초 동안 입력이 없으면 나오고, 완료 알림은 보통 약 60초를 기다리며 백그라운드 에이전트가 실행 중이지 않아야 합니다. 이는 즉각적인 상태 보고와는 별개입니다. 알림 시점을 참고하세요. OSC 9;4를 해석할 수 있다고 해서 Claude가 Corta에서 진행률을 보내는 것은 아닙니다. 2.1.310의 진행률 채널은 terminalProgressBarEnabled와 Claude가 진행률을 지원한다고 인식하는 터미널이 필요하며, Corta의 일반 식별자는 거기에 해당하지 않습니다.

상태를 지원하지 않는 프로그램은 앞쪽 프로세스 이름(claude, claude-code, codex, gemini, aider, opencode)으로 감지합니다. agent-processes = my-agent,another-agent로 이름을 더할 수 있습니다. 이런 페인은 프로세스가 활동하는 동안 상태 알 수 없음으로 보입니다. 출력이나 프롬프트 다시 그리기만으로는 작업이 진행 중이라는 증거가 되지 않기 때문입니다. 셸로 돌아오거나 프로세스가 정상 종료하면 완료가 아니라 유휴 상태이며, 실패로 알려진 종료는 실패입니다. 알림과 BEL은 주의를 끌 뿐 작업 상태를 바꾸지 않습니다. 조용하다는 것만으로는 완료를 뜻하지 않습니다. BEL의 기존 소리 / 시각 / 음소거 설정은 그대로입니다. 충돌한 CLI가 해제를 보내지 못할 때도, 보고된 셸 명령 경계가 오래된 상태와 진행률을 끝냅니다. 종료 상태 130(또는 직접 시작한 세션이 SIGINT로 끝난 경우)은 완료가 아니라 중단 / 유휴 상태이며, 그 밖에 알려진 0이 아닌 종료는 실패입니다. 새로 보고된 명령은 이전 요약을 지웁니다. 셸 경계나 세션 종료가 없으면 Corta는 출력만으로 조용한 충돌을 알아낼 수 없습니다.

agent-status = false는 상태 표시와 목록을 숨깁니다. notify-from-programs = false는 프로그램 알림과 에이전트 주의 알림을 끕니다. 프로그램 메시지는 Corta의 페인 이름 아래 페인 메시지로 표시되며, 길이를 제한하고 정리한 뒤 페인마다 5초에 최대 한 번으로 합쳐집니다. 페인이 보고된 차단 상태에 머무는 동안에는, 늦게 도착한 프로그램 알림이 이미 알린 대기를 다시 알리지 않습니다. 첫 전달 전에 도착한 알림은 대신 자기 메시지를 쓸 수 있습니다. macOS 알림 권한이 필요하며, Dock 개수를 보려면 앱 알림 설정에서 앱 아이콘에 배지 표시를 켜세요. 알림 센터는 메시지 문구를 보관하고 잠금 화면에 보여 줄 수 있습니다. 클릭하면 그 페인에 초점이 가며, 페인을 닫거나 다시 시작하면 대기 중인 프로그램 알림은 취소됩니다. 차단 상태를 벗어나면 고정된 주의 알림은 취소되지만, 독립된 프로그램 메시지는 각자의 수명을 유지합니다. BEL은 대기 중인 프로그램 문구를 바꾸거나 이미 알린 대기를 다시 알릴 수 없습니다. 보내기 전에 가시성을 다시 확인하며, 보낸 뒤의 시스템 전달은 macOS가 관리합니다.

OSC 확장을 쓰는 프로그램

iTerm2의 imgcat picture.png(또는 애니메이션 GIF)로 인라인 이미지를 표시할 수 있습니다. GIF는 첫 프레임을 보여 줍니다. 셀, 픽셀, 퍼센트, 자동 크기를 받으며 기본으로 가로세로 비율을 유지합니다. 이미지는 텍스트와 함께 스크롤되고, 기록 지우기는 기록에 있는 이미지도 지웁니다. 파일 다운로드는 거부합니다.

VS Code의 셸 통합은 Corta 훅과 같은 프롬프트와 명령 기록을 씁니다. 원격 호스트에 대한 iTerm2의 호스트 / 현재 디렉터리 보고는 참고용입니다. kitty 프로그램은 색과 포인터 모양을 정할 수 있지만, 링크 위에서는 여전히 손 모양입니다. OSC 52, iTerm2 Copy, kitty의 텍스트 전용 OSC 5522 하위 집합으로 클립보드에 쓰려면 모두 allow-clipboard-write = true가 필요하며, 읽기는 항상 거부합니다.

printf '\e]1337;RequestAttention=once\a'는 Corta가 활성 상태가 아닐 때 Dock 아이콘을 튀게 합니다. yes는 활성화될 때까지 계속 주의를 요청하고, no는 취소하며, fireworks는 once와 같습니다. 프로그램이 윈도우를 앞으로 가져올 수는 없습니다. OSC 판정표(영어)에 지원, 무시, 거부하는 모든 계열이 기록되어 있습니다.