728x90
반응형

Zed AI 사용법

Zed Editor 개요

  • 최신 텍스트 편집기
  • 개발자와 작가를 위한 강력한 도구
  • 빠른 성능과 사용자 친화적인 인터페이스 제공
  • 다양한 플러그인과 확장 기능 지원
  • 다중 플랫폼 지원 (macOS, Linux) - Windows Not Available
  • 오픈 소스 프로젝트로 커뮤니티 기여를 통해 지속 발전

주요 기능

  • 빠른 파일 열기 및 탐색
  • 강력한 코드 편집 기능 (코드 자동 완성, 구문 강조, 코드 폴딩 등)
  • 다양한 테마 제공
  • 멀티 커서 지원
  • 버전 관리 통합 (Git 등)

환경 구성

  1. 설치

    • 공식 웹사이트에서 다운로드
    • 각 운영체제에 맞는 설치 파일 다운로드 및 설치
    • 터미널에서 zed 명령어로 실행
  2. 기본 설정

    • 설정 파일을 통해 사용자 환경 구성
    • 설정 파일 위치: ~/.zed/settings.json
    • 예제 설정 파일:
      {
        "theme": "dark",
        "fontSize": 14,
        "tabSize": 4,
        "autoSave": true
      }

단축키

  1. 기본 단축키

    • 파일 열기: Ctrl + P
    • 저장: Ctrl + S
    • 멀티 커서 추가: Ctrl + D
    • 커서 이동: Arrow Keys
    • 줄 삭제: Ctrl + Shift + K
    • 코드 자동 완성: Ctrl + Space
    • 파일 탐색기 열기/닫기: Ctrl + B
    • 명령 팔레트 열기: Ctrl + Shift + P
  2. 커스터마이징

    • 설정 파일에서 단축키 사용자 정의 가능
    • 예제 설정 파일:
      {
        "keybindings": {
          "save": "Ctrl + S",
          "openFile": "Ctrl + P",
          "deleteLine": "Ctrl + Shift + K",
          "toggleSidebar": "Ctrl + B"
        }
      }
  3. 어시스턴스 기능

    • 어시스턴트 패널 열기: Ctrl + Alt + B
      • AI 모델과 상호작용할 수 있는 어시스턴트 패널 오픈
    • 새로운 대화 시작: Ctrl + N
      • 어시스턴트 패널에서 새로운 대화를 시작
    • 메시지 전송: Ctrl + Enter
      • 어시스턴트 패널에서 작성한 메시지를 전송
    • 인라인 어시스턴트 호출: Ctrl + Enter
      • 에디터 내에서 선택한 텍스트나 현재 줄에 대해 인라인 어시스턴트를 호출하여 AI 기반 변환을 수행
    • 어시스턴트 응답 취소: Esc
      • 어시스턴트의 현재 응답 스트리밍을 취소
    • 코드 자동 완성: Ctrl + Space
    • 리팩토링 제안: Ctrl + Shift + R
    • 버그 탐지: Ctrl + Shift + B

사용법

  1. 파일 열기

    • 터미널에서 zed <파일 경로> 명령어 사용
    • 예제:
      zed main.py
  2. 파일 탐색

    • Ctrl + P로 파일 탐색기 열기
    • 파일 이름 입력하여 빠르게 파일 찾기
  3. 멀티 커서 사용

    • Ctrl + D로 현재 단어와 일치하는 다음 단어 선택
    • Alt + Click으로 원하는 위치에 커서 추가

어시스턴트 기능

  1. 코드 자동 완성

    • 빠르게 코드 작성 가능
    • 예제:
      def greet(name):
          print(f"Hello, {name}!")
  2. 구문 강조

    • 다양한 프로그래밍 언어 지원
    • 예제:
      function greet(name) {
        console.log(`Hello, ${name}!`);
      }
  3. 코드 제안

    • AI 기반 코드 제안 기능
    • 예제:
      def calculate_sum(a, b):
          return a + b
  4. 코드 리팩토링

    • AI를 활용한 코드 리팩토링 제안 및 자동 적용
    • 예제:
      def process_data(data):
          cleaned_data = clean(data)
          analyzed_data = analyze(cleaned_data)
          return analyzed_data
  5. 버그 탐지

    • AI가 잠재적 버그 탐지 및 수정 제안
    • 예제:
      def divide(a, b):
          if b == 0:
              raise ValueError("Division by zero is not allowed")
          return a / b
  6. 문서 생성

    • 함수 및 클래스에 대한 문서 자동 생성

    • 예제:

      def add(a, b):
          """
          두 숫자를 더합니다.
      
          매개변수:
          a (int): 첫 번째 숫자
          b (int): 두 번째 숫자
      
          반환값:
          int: 두 숫자의 합
          """
          return a + b

익스텐션

  1. 설치

    • 다양한 익스텐션 지원
    • 익스텐션 설치 위치: ~/.zed/extensions
    • 예제:
      git clone https://github.com/username/extension.git ~/.zed/extensions/extension
  2. 사용

    • 설치된 익스텐션 자동 로드
    • 설정 파일에서 익스텐션 활성화
    • 예제 설정 파일:
      {
        "extensions": ["extension"]
      }

예제: Python 개발 환경 구성

  1. 설치

    • Python 관련 익스텐션 설치
    • 예제:
      git clone https://github.com/username/python-extension.git ~/.zed/extensions/python-extension
  2. 설정

    • 설정 파일에서 Python 익스텐션 활성화
    • 예제 설정 파일:
      {
        "extensions": ["python-extension"],
        "pythonPath": "/usr/bin/python3"
      }
  3. 사용

    • Python 파일 열고 코드 작성

    • 자동 완성, 구문 강조, 코드 폴딩 기능 사용 가능

    • 예제:

      def add(a, b):
          return a + b
      
      result = add(2, 3)
      print(result)

Zed AI 활용 - Inline Assistant 활용

  • 상황: 기존에 작성된 SQLModel의 모듈을 최신 버전의 문법으로 변환하고 최적화 필요

  • 절차

    • 파일 오픈
    • 변환 영역 선택
    • Ctrl + Enter => Inline Assistant Open
    • 프롬프트 입력
    • 변경 사항 확인
    • Accept or Reject
  • 프롬프트 입력 내용

Convert to SQLModel 0.0.23 syntax, optimize imports, remove mapped_column and sa_column,
add description, replace server_default with default, retain field max_length (e.g., BIGINT(20) → max_length=20),
and follow SQLModel best practices

  • Before: 변환 전 Python SqlModel Code
from decimal import Decimal
from typing import Optional

from sqlalchemy import CHAR, Column, DECIMAL, Date, DateTime, Index, String, TIMESTAMP, Table, Text, text
from sqlalchemy.dialects.mysql import BIGINT, DECIMAL, INTEGER, LONGTEXT, MEDIUMTEXT, SMALLINT, TINYINT
from sqlmodel import Field, SQLModel



class GoodsCategoryReview(SQLModel, table=True):
    __tablename__ = 'category_review'
    __table_args__ = (
        Index('category_id_index', 'category_code'),
        Index('template_id_index', 'template_id'),
        Index('template_unique', 'category_code', 'template_id', unique=True),
        {'comment': '카테고리 3뎁스 <-> 리뷰 템플릿 맵핑(n:n)'}
    )

    id: Optional[int] = Field(default=None, sa_column=mapped_column('id', BIGINT(20), primary_key=True, comment='고유번호'))
    category_code: str = Field(sa_column=mapped_column('category_code', CHAR(9), comment='카테고리 고유키'))
    template_id: int = Field(sa_column=mapped_column('template_id', BIGINT(20), comment='리뷰 템플릿 고유키'))
    order_seq: int = Field(sa_column=mapped_column('order_seq', INTEGER(11), server_default=text('0'), comment='정렬순서값'))
  • After: 변환 후 Python SqlModel Code
from typing import Optional

from sqlalchemy import Index
from sqlmodel import Field, SQLModel


class GoodsCategoryReview(SQLModel, table=True):
    __tablename__ = 'category_review'
    __table_args__ = (
        Index('category_id_index', 'category_code'),
        Index('template_id_index', 'template_id'),
        Index('template_unique', 'category_code', 'template_id', unique=True),
        {'comment': '카테고리 3뎁스 <-> 리뷰 템플릿 맵핑(n:n)'}
    )

    id: Optional[int] = Field(default=None, primary_key=True, max_length=20, description='고유번호')
    category_code: str = Field(max_length=9, description='카테고리 고유키')
    template_id: int = Field(max_length=20, description='리뷰 템플릿 고유키')
    order_seq: int = Field(default=0, max_length=11, description='정렬순서값')
  • 최적화된 SqlModel 코드를 제안하고, 적용 가능

Zed Editor는 다양한 기능과 확장성을 갖춘 텍스트 편집기로, 개발자와 작가 모두에게 유용한 도구입니다. 빠른 성능과 사용자 친화적인 인터페이스를 통해 생산성을 높이고, 다양한 플러그인과 확장 기능을 통해 사용자 맞춤형 환경을 제공합니다. Zed Editor를 사용하여 더 효율적이고 즐거운 작업 환경을 경험해보세요.

728x90
반응형

+ Recent posts