Keyboard Shortcuts
이 장에서 다루는 것
이 장에서는 PAIO에서 실제로 동작하는 키보드 · 마우스 조작을 화면 영역별로 정리합니다. 화면 영역과 다이얼로그의 이름은 21. 용어 사전의 표기를 따릅니다. 메뉴에 적힌 표기와 실제 동작이 다른 키, 같은 키가 상황에 따라 다르게 동작하는 경우도 함께 표시합니다. 각 영역의 화면 구성 자체는 05. 화면 구성과 조작에서 확인할 수 있습니다.
macOS에서는 아래의 Ctrl 을 Cmd 로 읽습니다. 표에 없는 키는 등록되어 있지 않으며, 텍스트 편집
영역에서는 브라우저 기본 동작을 따릅니다.
PAIO의 단축키는 출처가 두 가지입니다. 하나는 화면에 보이지 않는 네이티브 애플리케이션 메뉴가
등록한 가속기이고(Ctrl+N, Ctrl+O, 확대/축소, F11 등), 다른 하나는 각 에디터가 자기 영역에서
직접 처리하는 키입니다. 둘의 구분은 05.1.1에 정리되어 있습니다.
18.1 전역
앱 어느 화면에서나 동작하는 키입니다.
| 단축키 | 동작 | 비고 |
|---|---|---|
Ctrl+N | New Project | 네이티브 메뉴가 등록한 가속기입니다. 워크스페이스가 없으면 먼저 워크스페이스 선택 대화상자가 뜹니다 |
Ctrl+O | Open Workspace... | 네이티브 메뉴가 등록한 가속기입니다. 캔버스 에디터와 Markdown 에디터 안에서는 다르게 동작합니다 (18.11 참고) |
Ctrl+S | 활성 에디터 저장 | 편집 가능한 에디터가 각자 처리합니다. 어느 에디터도 처리하지 않은 Ctrl+S 는 메뉴 Save와 같은 경로로 저장합니다 |
Ctrl+Z | Undo | 편집 가능한 에디터가 각자 처리해 프로젝트마다 하나뿐인 편집 이력을 되돌립니다. 편집 불가 탭에서는 물리 키가 아무 일도 하지 않습니다 (18.11 참고) |
Ctrl+Y | Redo | 편집 가능한 에디터와 설정 다이얼로그는 Ctrl+Shift+Z 도 같은 동작으로 받습니다 |
Ctrl+X / Ctrl+C / Ctrl+V | 잘라내기 / 복사 / 붙여넣기 | 텍스트 입력 대상입니다. Edit 메뉴 항목은 브라우저 클립보드 명령을 실행합니다 |
Ctrl+A | 전체 선택 | 텍스트 입력 대상입니다. 탐색기와 IVC 캔버스에는 별도 동작이 있습니다 |
Ctrl+B | 사이드바(프로젝트 탐색기) 토글 | 코드 에디터는 같은 키를 Build로 등록합니다 |
Ctrl+` | 터미널 패널 토글 | 터미널이 없으면 하나를 만들어 줍니다 |
Ctrl+J | 터미널 패널 토글 | 메뉴 표기는 Toggle Panel 이지만 실제 동작은 터미널입니다 |
Ctrl+Shift+P | 명령 팔레트 열기/닫기 | |
F11 | 전체 화면 토글 | 네이티브 메뉴가 등록한 가속기입니다 |
Alt+F4 | 창 닫기 | OS가 처리하는 창 닫기이며 앱이 등록한 키가 아닙니다. 변경분이 있으면 저장 확인이 먼저 뜹니다 |
18.1.1 표기만 있고 전역에서는 동작하지 않는 키
메뉴에는 적혀 있지만 눌러도 전역에서는 반응하지 않는 키를 다음 표에 정리했습니다.
| 단축키 | 메뉴 표기 | 실제 |
|---|---|---|
Ctrl+Shift+S | Save As... | 전역에서는 아무 동작도 하지 않습니다. IVC 에디터와 DataType 에디터 안에서만 동작합니다 |
Ctrl++ / Ctrl+- / Ctrl+0 | Zoom In / Out / Reset Zoom | 메뉴 클릭과 키 입력은 서로 다른 방식으로 배율을 바꿉니다(05.7 참조) |
Ctrl+J | Toggle Panel | Utility 패널이 아니라 터미널 패널을 토글합니다. Utility 패널을 여는 단축키는 없습니다 |
18.2 그래픽 에디터 (IVC · VFB)
두 에디터는 같은 키를 받지만, 실제로 동작하는 범위가 다릅니다. 아래 표에서 "동작하지 않음"은 그 키를 눌러도 아무 일도 일어나지 않는다는 뜻입니다. 이때 브라우저 기본 동작도 함께 막힙니다.
18.2.1 키보드
| 단축키 | IVC | VFB |
|---|---|---|
Ctrl+S | 저장 | 저장 |
Ctrl+Z | 실행 취소 | 실행 취소 |
Ctrl+Y / Ctrl+Shift+Z | 다시 실행 | 다시 실행 |
Esc | 선택 해제 | 선택 해제 |
Delete / Backspace | 선택 항목 삭제 | 동작하지 않음 (우클릭 메뉴의 DELETE 를 사용합니다) |
Ctrl+A | 전체 선택 | 동작하지 않음 |
| 방향키 | 선택 항목을 1px 이동 | 동작하지 않음 |
Shift + 방향키 | 선택 항목을 20px(그리드 한 칸) 이동 | 동작하지 않음 |
Ctrl+Shift+S | Save IVC Diagram 대화상자 | 동작하지 않음 |
Ctrl+O | Open IVC Diagram 대화상자 | 동작하지 않음 |
Ctrl+C / Ctrl+V / Ctrl+X | 동작하지 않음 (노드 복사·붙여넣기는 제공되지 않습니다) | 동일 |
Ctrl+S, Ctrl+Shift+S, Ctrl+O, Ctrl+Z, Ctrl+Y 는 속성 패널의 입력란에 포커스가 있어도
캔버스가 처리합니다. 실행 취소 계열은 입력란의 포커스를 먼저 해제하므로, 입력 중이던 값이 하나의
작업으로 확정된 뒤 되돌아갑니다. 그 밖의 키(Delete, Ctrl+A, 방향키 등)는 입력란에 포커스가
있으면 무시됩니다.
방향키로 여러 노드를 한꺼번에 옮겨도 실행 취소는 한 번으로 되돌아갑니다.
경로 꺾임점(waypoint)을 드래그하는 중에 Esc 를 누르면 선택 해제가 아니라 그 드래그가 취소되고
원래 모양으로 돌아갑니다. 이때 편집 이력에는 아무 작업도 남지 않습니다.
IVC의
Ctrl+O는 워크스페이스를 여는 키가 아닙니다. IVC 캔버스에 포커스가 있으면 다른 IVC 토폴로지 파일 선택 대화상자가 열리고, 고른 파일이 현재 IVC 에디터에 불러들여집니다. 마찬가지로Ctrl+Shift+S는 IVC 모델을 임의의 경로에 저장하므로 프로젝트 폴더 바깥에도 파일을 만들 수 있습니다.
18.2.2 마우스
캔버스에서의 마우스 조작은 다음과 같습니다.
| 조작 | 동작 |
|---|---|
| 빈 곳 좌클릭 드래그 | 화면 이동 |
| 가운데 버튼 드래그 | 화면 이동 |
Space + 좌클릭 드래그 | 화면 이동 |
| 휠 (수정자 없음) | 세로 화면 이동 (문서 스크롤처럼 동작합니다) |
Shift + 휠 | 가로 화면 이동 |
Ctrl + 휠 | 확대/축소 (0.1배 ~ 4.0배, 커서 위치 기준) |
Shift + 드래그 | 연결 모드 |
Ctrl + 클릭 | 다중 선택 (토글) |
| 더블클릭 | 노드별 설정 다이얼로그 / 컴포지션 드릴다운 |
| 우클릭 | 컨텍스트 메뉴 |
캔버스에는 사각형 영역 선택(마퀴)이 없습니다. 빈 곳을 좌클릭한 채 끌면 화면이 이동합니다.
18.3 설정 다이얼로그
IVC의 노드 · 클러스터 · 스위치 설정 다이얼로그와 VFB의 Machine Configuration · ECU Configuration · SWC Internal Behavior · AA Internal Behavior 다이얼로그에서 사용하는 키입니다.
| 단축키 | 동작 |
|---|---|
Ctrl+S | 저장 |
Ctrl+Z | 다이얼로그 내부 실행 취소 |
Ctrl+Y / Ctrl+Shift+Z | 다이얼로그 내부 다시 실행 |
Esc | 가장 안쪽에 열린 UI를 닫고, 열린 것이 없으면 다이얼로그를 닫습니다 |
Esc 의 계층 규칙은 다음과 같습니다. 드롭다운 · 팝업 메뉴 · 인라인 편집기 같은 일시적 UI가 열려
있으면 그것부터 닫히고, 다이얼로그는 그대로 남습니다. 한 번 더 누르면 다이얼로그가 닫힙니다.
변경분이 있는 상태에서 닫으려 하면 Do you want to save the changes? 확인이 먼저 뜨고, Save ·
Don't Save · Cancel 중에서 고릅니다.
Ctrl+Z의 동작 범위는 다이얼로그마다 다릅니다.
- VFB의 Machine Configuration · ECU Configuration · SWC Internal Behavior · AA Internal Behavior 다이얼로그는 다이얼로그 내부 이력이 비면 프로젝트 편집 이력으로 넘어갑니다. 저장 직후처럼 내부 이력이 비워진 상태에서도
Ctrl+Z가 동작합니다.- IVC의 노드 · 클러스터 · 스위치 설정 다이얼로그는 넘어가지 않습니다. 내부 이력이 비면
Ctrl+Z는 아무 일도 하지 않습니다. 이 다이얼로그가 소화한 키는 바깥으로도 전달되지 않으므로, 이전 편집을 되돌리려면 다이얼로그를 닫은 뒤 되돌립니다.
설정 다이얼로그의 내부 이력은 IVC · VFB 모두 최대 50단계까지 보관됩니다.
18.4 표 기반 모델 편집기
Signal · System · Interface · DataType · Module Definition · Module Config(ECUC) 여섯 에디터는 캔버스가 아니라 목록과 속성 패널로 이루어져 있습니다. 이 여섯은 저장과 실행 취소 계열 키를 공통으로 갖습니다.
| 단축키 | 동작 |
|---|---|
Ctrl+S | 저장 |
Ctrl+Z | 실행 취소 (프로젝트 편집 이력) |
Ctrl+Y / Ctrl+Shift+Z | 다시 실행 |
실행 취소 계열은 입력 중이던 값을 먼저 하나의 작업으로 확정한 뒤 되돌립니다. 그래서 필드 편집이 통째로 되돌아가고, 브라우저의 글자 단위 되돌리기가 끼어들지 않습니다.
에디터별로 다음 키가 더 있습니다.
| 에디터 | 단축키 | 동작 |
|---|---|---|
| DataType | Ctrl+Shift+S | Save DataTypes 대화상자를 열어 다른 경로에 저장합니다 |
| Interface | Delete / Backspace | 선택한 인터페이스를 삭제합니다 |
| Module Definition | Delete / Backspace | 선택한 정의 노드를 삭제합니다 (모듈 노드는 제외) |
| Module Config | Delete / Backspace | 선택한 컨테이너 인스턴스를 삭제합니다 |
| Module Config | Ctrl+D | 선택한 컨테이너 인스턴스를 복제합니다 |
| Module Config | F2 | 속성 패널의 첫 입력란(Name)으로 포커스를 옮기고 값을 선택합니다 |
Delete 계열은 입력란 · 텍스트 영역 · 콤보에 포커스가 있으면 무시됩니다.
목록에서는 ArrowUp / ArrowDown 으로 행을 옮길 수 있습니다. DataType의 타입 목록과 단위 목록,
Interface의 인터페이스 목록, Signal의 프레임 목록과 시그널 표가 이 방식을 사용합니다.
키가 도달하는 범위는 두 가지로 갈립니다. System과 DataType은 해당 에디터가 화면에 보이는 동안 창 전체에서 키를 받고, 나머지 넷은 에디터 영역 안에 포커스가 있어야 합니다.
18.5 코드 에디터 (C / C++ / Rust)
코드 에디터에서 사용하는 키는 다음과 같습니다.
| 단축키 | 동작 |
|---|---|
Ctrl+S | 저장 |
Ctrl+B | Build |
Ctrl+F5 | Build & Run |
Shift+Alt+F | Format Document |
Alt+O | Switch Header/Source (.c ↔ .h, .cpp ↔ .hpp 등) |
Ctrl + 클릭 | 정의로 이동. 언어 서버가 실행 중이 아니면 #include 줄에 한해 해당 파일을 엽니다 |
그 밖의 편집 단축키는 Monaco 기본값을 따릅니다. 자세한 빌드 흐름은 16. 코드 편집 · 빌드 · 터미널을 참고하세요.
18.6 XML / ARXML 에디터
XML / ARXML 에디터에서 사용하는 키는 다음과 같습니다.
| 단축키 | 동작 |
|---|---|
Ctrl+S | 저장 |
Ctrl+Z / Ctrl+Y | 실행 취소 / 다시 실행 (Monaco 자체 이력) |
Shift+Alt+F | Format XML |
Ctrl+S 와 실행 취소 계열은 편집 모드에서만 동작합니다. 파일을 열면 기본이 보기 모드이므로,
먼저 툴바 왼쪽의 눈 아이콘을 눌러 편집 모드로 전환합니다. 보기 모드에서는 툴바의 저장 · 실행
취소 · 다시 실행 · 서식 버튼도 비활성입니다.
.dbc 파일에서는 서식 버튼이 표시되지 않습니다. 다만 버튼만 숨겨질 뿐 Shift+Alt+F 키는 그대로
살아 있어, .dbc 를 편집 모드로 두고 이 키를 누르면 XML 서식 함수가 실행됩니다.
편집 모드에서 < 를 입력하면 AUTOSAR 스키마상 허용된 자식 요소가 자동 완성으로 제안됩니다.
18.7 Markdown 에디터
Markdown 에디터에서 사용하는 키는 다음과 같습니다.
| 단축키 | 동작 |
|---|---|
Ctrl+S | 저장합니다. 아직 저장한 적 없는 문서면 저장 위치 대화상자가 뜹니다 |
Ctrl+T | 새 문서를 엽니다 (문서를 이미 편집 중이면 별도 탭으로 엽니다) |
Ctrl+O | Markdown 파일 선택 대화상자를 열고, 고른 파일을 별도 탭으로 엽니다 |
세 키는 Markdown 에디터가 화면에 보이는 동안에만 동작합니다.
굵게 · 기울임 버튼의 툴팁에는 Bold (Ctrl+B) / Italic (Ctrl+I) 가 적혀 있으나 이 편집기에서
그 키는 동작하지 않습니다. 서식은 툴바 버튼으로 적용합니다. 툴바에는 B, I, S(취소선),
H(제목), <>(인라인 코드), -(글머리 기호) 여섯 개가 있습니다.
18.8 탐색기
프로젝트 탐색기에서의 마우스 조작은 다음과 같습니다.
| 조작 | 동작 |
|---|---|
| 클릭 | 선택 |
Ctrl + 클릭 | 다중 선택 (토글) |
Shift + 클릭 | 범위 선택 |
| 더블클릭 | 해당 노드에 맞는 에디터로 엽니다 |
| 우클릭 | 컨텍스트 메뉴 |
| 화살표(꺾쇠) 클릭 | 펼치기 / 접기 |
| 드래그 | 이동. 파일과 폴더 노드만 끌 수 있습니다 |
노드에 포커스가 있을 때 사용하는 키는 다음과 같습니다.
| 단축키 | 동작 |
|---|---|
Enter / Space | 자식이 있으면 펼치기/접기, 없으면 에디터로 엽니다 |
ArrowRight | 접힌 노드를 펼칩니다 |
ArrowLeft | 펼친 노드를 접습니다 |
Delete | 선택한 파일 · 폴더를 삭제합니다 (확인 대화상자가 뜹니다) |
Ctrl+C | 복사 |
Ctrl+X | 잘라내기 |
Ctrl+V | 붙여넣기 |
Ctrl+A | 보이는 노드 전체 선택 |
Delete 는 워크스페이스 · 프로젝트 · 고정 폴더 같은 구조 노드에는 동작하지 않습니다. 고정
폴더가 실수로 지워지는 것을 막기 위해 삭제 대상을 파일과 폴더로 제한합니다.
18.9 탭
에디터 탭에서 할 수 있는 조작은 다음과 같습니다.
| 조작 | 동작 |
|---|---|
클릭 / Enter / Space | 탭 활성화 |
| 가운데 버튼 클릭 | 탭 닫기 |
| 우클릭 | Close / Close Others / Close Saved / Close All |
| 탭 바 위로 드래그 | 순서 변경 (같은 그룹) 또는 그룹 간 이동 |
| 본문 오른쪽 절반으로 드래그 | 좌우 분할 후 새 그룹으로 이동 |
| 본문 왼쪽 절반으로 드래그 | 분할 없이 그 그룹으로 이동 |
탭 컨텍스트 메뉴가 열려 있을 때는 ArrowUp / ArrowDown / Home / End 로 항목을 옮기고
Enter 또는 Space 로 실행하며 Esc 로 닫습니다.
분할은 좌우 방향만 지원합니다. 위아래로 나누는 조작은 없습니다. 컨텍스트 메뉴의 Close Others 와 Close All 은 저장 여부를 묻지 않고 닫으므로 주의가 필요합니다(05.3.3 참고).
18.10 명령 팔레트
명령 팔레트에서 사용하는 키는 다음과 같습니다.
| 단축키 | 동작 |
|---|---|
Ctrl+Shift+P | 열기 / 닫기 |
ArrowDown / ArrowUp | 항목 이동 |
Tab / Shift+Tab | 항목 이동 |
Enter | 선택한 명령 실행 |
Esc | 닫기 |
팔레트에 등록된 명령 30개 중 13개는 실행해도 아무 동작을 하지 않습니다. 어떤 명령이 그런지와 대신 쓸 곳은 05.6 명령 팔레트에 정리되어 있습니다.
18.11 알아 둘 충돌과 함정
같은 키가 화면 영역에 따라 다르게 동작하는 경우를 모았습니다.
| 키 | 상황에 따른 동작 |
|---|---|
Ctrl+B | 코드 에디터에서는 Build 로 등록되어 있습니다. 그 밖에서는 사이드바를 토글합니다 |
Ctrl+O | 기본 → Open Workspace / IVC 캔버스 → IVC 모델 파일 불러오기 / VFB 캔버스 → 아무 동작 없음 / Markdown 에디터 → Markdown 파일 열기 |
Ctrl+Shift+S | 기본 → 아무 동작 없음 / IVC 캔버스 → Save IVC Diagram / DataType 에디터 → Save DataTypes |
Ctrl+J | 메뉴 표기는 Utility 패널이지만 실제로는 터미널 패널 토글 |
Ctrl+A | 텍스트 입력 → 전체 선택 / 탐색기 → 보이는 노드 전체 선택 / IVC 캔버스 → 전체 선택 / VFB 캔버스 → 동작 없음 |
Delete | 탐색기 → 파일·폴더 삭제 / IVC 캔버스 → 선택 항목 삭제 / VFB 캔버스 → 동작 없음 / Interface · Module Definition · Module Config → 선택 항목 삭제 |
Esc | 열린 드롭다운·메뉴 → 그것을 닫음 / 없으면 다이얼로그 닫기 / 캔버스에서는 선택 해제 (꺾임점 드래그 중이면 드래그 취소) |
Ctrl+Z | 편집 가능한 에디터 → 프로젝트 편집 이력 / 설정 다이얼로그 → 다이얼로그 내부 이력이 먼저 (18.3 참고) / 코드 · XML 에디터 → Monaco 자체 이력 / 이미지 · 텍스트 뷰어 → 동작 없음 |
모델 편집은 어느 에디터에서 한 것이든 하나의 프로젝트 이력으로 모입니다. 다만 물리 Ctrl+Z 는
각 에디터가 직접 처리하므로, 이미지 뷰어처럼 편집 이력이 없는 탭이 활성이면 키를 눌러도 아무
일이 일어나지 않습니다. 이때는 Edit ▸ Undo 메뉴 항목이나 명령 팔레트의 Undo를 사용합니다.
이 경로는 활성 탭이 편집 불가 에디터여도 가장 최근 모델 편집을 되돌리고, 그 편집이 있던 에디터로
화면을 옮깁니다. 되돌릴 작업의 이름은 Edit 메뉴에서 확인할 수 있고, 전체 목록은 Utility
패널의 History 탭에서 볼 수 있습니다(05.4.1 참고).