Cursor IDE 단축키 및 기능 사용

SUNG JUN LEE·2024년 9월 20일
0

기존 사용하던 VSCode에서 Cursor로 전환하면서 사용하게 될 단축키와 설정 값에 대해 정리해보았다.

창 단축키

  • CMD + SHIFT + F = 전체 검색
  • CMD + SHIFT + O = 심볼 검색
  • Ctrl + number = 탭 내 포커스 전환
  • CMD + number = Split View 추가 OR Split View 간 포커스 전환
  • CMD + \ = 해당 파일 Split View

터미널 단축키

  • CMD + J = 터미널 숨기기
  • CMD + SHIFT + 백틱 = 새 터미널
  • Ctrl + 백틱 = 터미널 최대화(커스텀 키 설정 필요 - 맨 아래 참조)
  • CMD + SHIFT + { or } = 터미널 탭 전환
  • CMD + \ = 터미널 분할
  • CMD + OPT + 좌우 방향키 = 분할 터미널 간 포커스 전환
  • Ctrl + ; = edtior 및 터미널 간 focus 전환(커스텀 키 설정 필요 - 맨 아래 참조)

AI 관련 단축키

자동으로 다음 줄 혹은 블록을 제안한다. 수락 시 TAB키 활용

  • CMD + K = 프롬프트 바(아무상태 혹은 코드 블록하여 호출, 터미널에서도 가능, 코드 생성 질문 등 가능)
  • CMD + I = AI 인라인 채팅(코드 질문 혹은 새로운 코드 생성 요청 / 특정 코드 블록을 선택한 상태에서도 가능)
  • CMD + SHIFT + I = AI 인라인 채팅 큰 창
  • CMD + L = AI 채팅

CMD+K, CMD+I, CMD+L 등 무슨 차이인가?
K는 빠른 AI명령이 가능하고, @심볼명 을 태그하여 코드 참조가 가능하다.
I는 인라인 채팅(기본적으로 작업 중 인 코드 참조하며, 코드 수정도 같이 해주며 더 긴밀한 코드 분석 및 제안을 해준다.)
L는 일반적인 채팅(코드 컨텍스트 참조가 아닌, 코드 제안은 하지만 수정할 수 없는 채팅)

AI 채팅 명령어(채팅 시 사용)

  • @Codebase : 전체 코드베이스 참조 명령어(ex 유저 관련 코드 찾아서 구현 방식 알려줘 등에 쓰기 좋다.)
  • @원하는 심볼 : MyClass 등 원하는 심볼을 채팅에 컨텍스트로 넣기(ex @Home) <= 블록하여 채팅 하는 기능과 같다.
  • @Web : AI 채팅에 웹 검색 기능 추가
  • @라이브러리 or @docs : AI 채팅에 문서 탑재 기능(@React 혹은 @docs 후 Add Docs 하여 주소 첨부 가능)

Cursor 기능

  • 자동 오류 수정
  • AI 예측 코드 제안
  • AI 예측 코드 이동
  • AI 멀티 라인 수정
  • AI 코드베이스 답변
  • AI 코드 컨텍스트 채팅
  • AI 이미지 첨부 채팅
  • AI 웹 검색 기능
  • 즉시 적용(채팅의 제안된 코드를 복사 붙여넣기를 생략하여 즉시 적용해주는 기능) -> 제안된 코드의 apply 버튼 클릭
  • AI 공식 문서 참조기능
  • AI 코드 및 터미널 명령어 적용(CMD + K)

커스텀 키 셋팅 설정 값 (open keyboard shortcut) - 2024-10-21

// 키 바인딩을 이 파일에 넣어서 기본값 재정의
[
  {
    "key": "ctrl+;",
    "command": "terminal.focus",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+;",
    "command": "workbench.action.focusActiveEditorGroup",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+;",
    "command": "workbench.action.focusActiveEditorGroup",
    "when": "explorerViewletFocus"
  },
  {
    "key": "ctrl+d",
    "command": "explorer.newFolder",
    "when": "explorerViewletFocus"
  },
  {
    "key": "ctrl+f",
    "command": "explorer.newFile",
    "when": "explorerViewletFocus"
  },
  {
    "key": "ctrl+[Backquote]",
    "command": "workbench.action.toggleMaximizedPanel",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+e",
    "command": "-cursorLineEnd",
    "when": "textInputFocus"
  },
  {
    "key": "ctrl+e",
    "command": "editor.action.showHover",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+r cmd+i",
    "command": "-editor.action.showHover",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+enter",
    "command": "editor.action.revealDefinition",
    "when": "editorHasDefinitionProvider && editorTextFocus"
  },
  {
    "key": "f12",
    "command": "-editor.action.revealDefinition",
    "when": "editorHasDefinitionProvider && editorTextFocus"
  }
]

CLI alias

alias rnios="npx react-native run-ios --simulator 'iPhone SE (3rd generation)'"
alias rnmyios="npx react-native run-ios"
alias rnand="npx react-native run-android"
alias rncache="npx react-native start --reset-cache"
profile
FE developer

0개의 댓글