เจาะลึก Claude Code (ตอนแรก)
สวัสดีครับ
สวัสดีครับ ผมชื่อ Nakamura(nokomoro3) จากทีม Data Business Headquarters – Machine Learning
ในครั้งนี้จะมาเจาะลึก Claude Code กันครับ
เกี่ยวกับบทความนี้
เดิมทีผมใช้ Cursor อยู่แล้ว ก็เลยยังครึ่งๆ กลางๆ อยู่ว่า Claude Code จำเป็นจริงหรือเปล่า แต่พอลองใช้ดูรู้สึกว่า behavior ของ agent ค่อนข้างเป็นไปตามที่คาดหวังทีเดียวครับ จริงๆ แล้วใน Cursor ผมใช้หลักๆ แค่ code completion กับ Cmd + K เป็นหลัก ส่วนการทำงานเชิง agent แบบนี้ผมเริ่มแยกมาใช้ Claude Code แทนในช่วงหลังๆ นี้
เนื่องจากประสบการณ์การใช้งานเป็นเรื่องที่ค่อนข้างขึ้นอยู่กับมุมมองส่วนบุคคล ทำให้สื่อสารผ่านตัวอักษรได้ยาก แต่เพื่อให้ทุกคนได้รู้จัก Claude Code มากขึ้นและมีคนลองใช้งานให้มากที่สุด ผมจึงได้เขียนบทความนี้ขึ้นมาเพื่ออธิบายวิธีการใช้งานแบบครบถ้วนครับ
ด้านล่างนี้คือเนื้อหาที่ได้เขียนไว้ ซึ่งมีเนื้อหาค่อนข้างหลากหลาย
- อธิบายวิธีการตั้งค่า Claude Code พื้นฐาน
- อธิบายวิธีการใช้งานตั้งแต่พื้นฐานไปจนถึงการประยุกต์ใช้ (เช่น Permission, GitHub Integration เป็นต้น)
- อธิบาย Command List แบบครบถ้วน
สำหรับเวอร์ชัน Bedrock มีบทความที่อธิบายไว้แล้ว จึงไม่ได้ทำการทดลองในครั้งนี้ ให้ดูที่ลิงก์บทความด้านล่างนี้แทน
- ไม่ทำการอธิบาย Bedrock version
ทั้งนี้เนื่องจากบทความมีจำนวนค่อนข้างมาก จึงได้แบ่งออกเป็น 2 ตอน โดยสามารถดูเนื้อหาตอนหลังได้ที่ลิงก์นี้
เกี่ยวกับ Subscription (แพ็กเกจแบบเหมาจ่าย)
ก่อนเริ่มการใช้งาน เรามาทำความเข้าใจกันเล็กน้อยเกี่ยวกับ Subscription กันครับ
สำหรับการใช้งาน Claude Code จะมี Subscription อยู่ 2 แบบ คือ Pro และ Max
สามารถดูรายละเอียดความแตกต่างของแต่ละแพ็กเกจได้ตามข้อมูลด้านล่างนี้
รายการ | Pro Plan | Max Plan (5x Pro) | Max Plan (20x Pro) |
---|---|---|---|
ราคา | $20/เดือน | $100/เดือน | $200/เดือน |
ขีดจำกัดการใช้งาน (Claude) (ต่อ 5 ชั่วโมง) |
ประมาณ 45 ข้อความ | ประมาณ 225 ข้อความ | ประมาณ 900 ข้อความ |
ขีดจำกัดการใช้งาน (Claude Code) (ต่อ 5 ชั่วโมง) |
ประมาณ 10–40 ข้อความ | (ไม่ระบุ) | ประมาณ 200–800 ข้อความ |
Model Access | Sonnet 4 (Opus 4 ใช้ได้ใน Claude Code เท่านั้น) | Sonnet หรือ Opus 4 (Claude Code ใช้ได้, สลับด้วยคำสั่ง /model ) |
Sonnet หรือ Opus 4 (Claude Code ใช้ได้, สลับด้วยคำสั่ง /model ) |
เหมาะสมกับการใช้งาน | งานขนาดเล็กบน repository ขนาดเล็ก (ปกติมีโค้ดน้อยกว่า 1,000 บรรทัด) | การใช้งานระดับกลางในชีวิตประจำวัน หรือ Power User | การใช้งานโค้ดขนาดใหญ่ในระดับองค์กร หรือ Power User |
เดิมที Claude Code สามารถใช้งานได้เฉพาะบน Max(100USD/เดือน) เท่านั้น แต่ตั้งแต่วันที่ 5 มิถุนายนเป็นต้นมา ก็สามารถใช้งานได้บน Pro(20USD/เดือน) เช่นกัน ทำให้รู้สึกว่ามีจำนวนผู้ใช้งานขยายตัวมากขึ้น
ตอนเริ่ม Preview ในเดือนกุมภาพันธ์ เดิมทีให้ความรู้สึกว่าเป็นเพียง CLI อย่างเดียว แต่ในเดือนพฤษภาคม เมื่อเข้าสู่ GA (General Availability) ก็ได้มีการเพิ่มการทำงานร่วมกับ IDE อย่างเช่น VSCode ซึ่งกลายเป็นพื้นฐานที่ช่วยเพิ่มความนิยมมากขึ้น
ใน Subscription เหล่านี้ ไม่ได้มีแค่ Claude Code เท่านั้น แต่ยังรวมถึง Claude (ก็คือความสามารถในการแชทกับ Claude ผ่าน Web Browser) ด้วย
สำหรับครั้งนี้ เราจะตั้งค่าภายใต้เงื่อนไขที่ใช้ Subscription Pro เป็นหลัก
แม้ว่า Subscription จะเป็นแบบเหมาจ่ายรายเดือน แต่ก็สามารถใช้งานแบบ Pay-as-you-go ผ่าน Anthropic API ได้ โดยต้องตั้งค่า API key และหากจะใช้ Claude บน GitHub Actions ก็จำเป็นต้องมี API key เช่นกัน ดังนั้นโปรดระมัดระวังจุดนี้ด้วย
Environment ที่สามารถใช้ได้
สามารถใช้งานได้ทั้งใน MacOS หรือ Linux
Operating Systems: macOS 10.15+, Ubuntu 20.04+/Debian 10+, or Windows
แนะนำให้ดำเนินการใน Linux เนื่องจากใช้งานสะดวกกว่า โดยสามารถดูได้ที่ลิงก์บทความด้านล่างนี้
การติดตั้ง Claude Code
สร้างโฟลเดอร์สำหรับใช้งานตามความเหมาะสม (เช่นใช้เพื่อทำงานใน VSCode เป็นต้น แต่จริงๆแล้วการติดตั้ง Claude Code ไม่จำเป็นต้องมีโฟลเดอร์ที่ใช้สำหรับทำงานก็ได้)
mkdir -p ~/claude-code-trial
cd ~/claude-code-trial
ตรวจสอบเวอร์ชันของ node และ npm
node --version
# v22.18.0
npm --version
# 10.9.3
ติดตั้ง Claude Code ตามด้านล่างนี้
npm install -g @anthropic-ai/claude-code
claude --version
# 1.0.85 (Claude Code)
โปรดทราบว่า Interactive REPL ที่เรียกใช้งานด้วยคำสั่ง claude
ก็คือ Claude Code
การตั้งค่าครั้งแรก
สามารถใช้คำสั่ง claude
เพื่อเริ่มต้น REPL (สภาพแวดล้อมการทำงานแบบโต้ตอบ) ได้
claude
เมื่อเปิดใช้งานครั้งแรก จะมีคำถามบางอย่างขึ้นมา ให้ตอบตามนั้นไปเรื่อยๆ
ขั้นแรกการเลือก Theme ครั้งนี้จะเลือกเป็น Dark mode
╭──────────────────────────╮
│ ✻ Welcome to Claude Code │
╰──────────────────────────╯
Let's get started.
Choose the text style that looks best with your terminal:
To change this later, run /theme
❯ 1. Dark mode✔
2. Light mode
3. Dark mode (colorblind-friendly)
4. Light mode (colorblind-friendly)
5. Dark mode (ANSI colors only)
6. Light mode (ANSI colors only)
ในส่วนนี้เป็นการเลือก Plan โดยจะเลือกได้ระหว่าง Subscription แบบเหมาจ่ายรายเดือน หรือแบบจ่ายตามการใช้งาน (Pay-as-you-go)
ครั้งนี้เราจะใช้ Subscription แบบ Pro ดังนั้นจะเลือก 1. Claude account with subscription
Claude Code can now be used with your Claude subscription or billed based on API usage through your Console account.
Select login method:
❯ 1. Claude account with subscription
Starting at $20/mo for Pro, $100/mo for Max - Best value, predictable pricing
2. Anthropic Console account
API usage billing
ลิงก์สำหรับ Browser จะถูกแสดงขึ้นมา หากไม่เปิดอัตโนมัติ ให้เข้าไปที่ลิงก์นั้นด้วยตนเอง
Browser didn't open? Use the url below to sign in:
https://claude.ai/oauth/authorize?code=...(ละเว้นส่วนหลัง)
หากยังไม่เคย Sign in เข้าสู่ Claude มาก่อน ให้ Sign in ตามหน้าจอดังนี้ แล้ว Verify ตามขั้นตอนของระบบ
แล้วจะมีให้ติ๊ก 2 ช่อง โดยในส่วนของ "Subscribe" ไม่ต้องติ๊กก็ได้ แต่ครั้งนี้จะติ๊กทั้งหมด
・✅️ I agree to... (บังคับ)
・✅️ Subscribe to... (ไม่บังคับ)
แล้วคลิก Continue
ครั้งนี้จะเลือกใช้งานแบบ For personal use
เลือกจุดประสงค์ที่ต้องการใช้งาน แล้วคลิก Let's go
(สามารถเลือกได้สูงสุด 3 หัวข้อ)
ระบบจะแสดงข้อความให้เลือก Plan โดยครั้งนี้จะเลือก Pro
ดำเนินการตามขั้นตอนการชำระเงิน
หลังจากนั้นคาดว่าจะมีการแสดง Authentication Code ขึ้นมาแบบด้านล่างนี้ (กรณีที่มีการทำขั้นตอน Payment อยู่ระหว่างนั้น อาจมีการเปลี่ยนไปยังหน้าอื่นได้ ในกรณีนั้นให้กดย้อนกลับไปที่ลิงก์เดิมอีกครั้ง)
กลับไปที่ Console และวาง Authentication Code
Paste code here if prompted > {วาง Authentication Code ที่นี่}
ตรวจสอบว่าคุณได้เข้าสู่ระบบสำเร็จแล้ว และกด Enter เพื่อดำเนินการต่อ
Logged in as {Email address}
Login successful. Press Enter to continue…
อ่านข้อความด้านล่างนี้ แล้วดำเนินการต่อ
Security notes:
1. Claude can make mistakes
You should always review Claude's responses, especially when
running code.
2. Due to prompt injection risks, only use it with code you trust
For more details see:
https://docs.anthropic.com/s/claude-code-security
Press Enter to continue…
การตั้งค่า Terminal จะยอมรับตาม Recommended
Use Claude Code's terminal setup?
For the optimal coding experience, enable the recommended settings
for your terminal: Shift+Enter for newlines
❯ 1. Yes, use recommended settings
2. No, maybe later with /terminal-setup
ระบบจะถามว่าต้องการให้เข้าถึง Folder ปัจจุบันได้หรือไม่
ครั้งนี้เราได้เตรียมโฟลเดอร์ที่ใช้สำหรับทำงานในระบบไว้แล้ว จึงกด OK เพื่อดำเนินการต่อ
Do you trust the files in this folder?
/home/nakamura/claude-code-trial
Claude Code may read files in this folder. Reading untrusted files may lead Claude Code to behave in an unexpected ways.
With your permission Claude Code may execute files in this folder. Executing untrusted code is unsafe.
https://docs.anthropic.com/s/claude-code-security
❯ 1. Yes, proceed
2. No, exit
อ่านข้อความด้านล่างนี้ แล้วดำเนินการต่อ
Tips for getting started:
1. Ask Claude to create a new app or clone a repository
2. Use Claude to help with file analysis, editing, bash commands and git
3. Be as specific as you would with another engineer for the best results
4. ✔ Run /terminal-setup to set up terminal integration
※ Tip: Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits
ครั้งนี้มีข้อความแสดงว่า VSCode IDE ถูกติดตั้งโดยอัตโนมัติแล้ว
🎉 Claude Code extension installed in VS Code!
Version: 1.0.24
Quick start:
• Press Cmd+Esc to launch Claude Code
• View and apply file diffs directly in your editor
• Use Ctrl+Alt+K to insert @File references
For more information, see https://docs.anthropic.com/s/claude-code-ide-integrations
หาก Claude Code เริ่มต้นตามที่แสดงด้านล่างนี้ แสดงว่าสำเร็จแล้ว!
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
│ │
│ /help for help, /status for your current setup │
│ │
│ cwd: /home/nakamura/claude-code-trial │
╰───────────────────────────────────────────────────╯
※ Tip: Did you know you can drag and drop image files into your terminal?
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ > │
╰───────────────────────────────────────────────────────────────────────────────────────╯
? for shortcuts
หลังจากนี้คุณสามารถส่งคำสั่งหรือคำขอถึง Claude และรัน Slash commands ได้บนหน้านี้
วิธีการใช้งาน (เวอร์ชันพื้นฐาน)
Request พื้นฐาน
เมื่อรันคำสั่งผ่าน REPL ไปแล้ว Claude Code จะทำการ Code generation และงานอื่นๆ
> สร้างโค้ดที่ดึงรายการ S3 bucket ออกมาด้วย boto3 ในไฟล์ main.py
ก็จะได้ผลลัพธ์แบบนี้
> สร้างโค้ดที่ดึงรายการ S3 bucket ออกมาด้วย boto3 ในไฟล์ main.py
● Write(main.py)
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ Create file │
│ ╭───────────────────────────────────────────────────────────────────────────────────╮ │
│ │ main.py │ │
│ │ │ │
│ │ import boto3 │ │
│ │ │ │
│ │ def list_s3_buckets(): │ │
│ │ s3 = boto3.client('s3') │ │
│ │ │ │
│ │ try: │ │
│ │ response = s3.list_buckets() │ │
│ │ buckets = response['Buckets'] │ │
│ │ │ │
│ │ print("S3 Buckets:") │ │
│ │ for bucket in buckets: │ │
│ │ print(f"- {bucket['Name']} (Created: {bucket['CreationDate']})") │ │
│ │ │ │
│ │ return buckets │ │
│ │ │ │
│ │ except Exception as e: │ │
│ │ print(f"Error retrieving S3 buckets: {e}") │ │
│ │ return [] │ │
│ │ │ │
│ │ if __name__ == "__main__": │ │
│ │ list_s3_buckets() │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────╯ │
│ Do you want to create main.py? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again this session (shift+tab) │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────╯
ในการตั้งค่าเริ่มต้น การสร้างไฟล์หรือการทำงานลักษณะนี้จะอยู่ในโหมดที่ต้องขออนุญาตจากผู้ใช้ก่อน
เมื่อเลือก Yes
ระบบจะเริ่มการ Implement
● Write(main.py)
⎿ Wrote 21 lines to main.py
import boto3
def list_s3_buckets():
s3 = boto3.client('s3')
try:
response = s3.list_buckets()
buckets = response['Buckets']
print("S3 Buckets:")
… +11 lines (ctrl+r to expand)
● สร้างไฟล์ main.py แล้ว พร้อมคำอธิบายเป็นภาษาไทย สคริปต์นี้จะดึงรายการ S3 bucket โดยใช้ boto3 และแสดงชื่อกับวันที่สร้าง
วิธีการเริ่มเซสชันใหม่
หากเผลอปิด Terminal ไป ก็สามารถเริ่มเซสชันใหม่ จาก History เดิมได้เช่นกัน
แต่ก่อนอื่นหากต้องการออกจากเซสชัน ให้รันคำสั่ง /exit
หรือกด Ctrl+D
2 ครั้งติดกันก้ได้
> /exit
ในการรีสตาร์ท มีอยู่ 2 วิธีหลัก
claude -c
orclaude --continue
: การเริ่มจากเซสชันล่าสุดclaude -r
orclaude --resume
: การเริ่มโดยเลือกเซสชัน
ครั้งนี้จะแนะนำวิธีที่ 2
เมื่อรัน claude -r
ก็จะย้ายไปยังหน้าจอเลือกเซสชันตามที่แสดงด้านล่างนี้
claude -r
Modified Created # Messages Summary
❯ 1. 3m ago 3m ago 1 Caveat: The messages below were generated by ...
2. 3m ago 8m ago 3 Cursor IDE Connection Established
หากเลือกเซสชัน แล้วกด Enter ก็จะสามารถดำเนินการต่อจากตรงนั้นได้
การสลับ Mode
เราสามารถสลับจาก Mode ก่อนหน้านี้ไปยังหนึ่งใน Mode ด้านล่างได้โดยกด "Shift+Tab"
ค่าเริ่มต้นจะเป็นดังนี้
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ > │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
? for shortcuts
ใน Mode นี้ โดยพื้นฐานจะเป็นการอนุญาตเฉพาะสิทธิ์ที่เกี่ยวข้องกับการอ่าน (read-only) เท่านั้น ถือว่าเป็นสภาวะที่ปลอดภัย
เมื่อกด "Shift+Tab" จะกลายเป็น "auto-accept edits on"
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ > │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
⏵⏵ accept edits on (shift+tab to cycle)
"auto-accept edits on" หมายความว่า นอกจากค่า Default แล้ว ยังอนุญาตให้สร้างหรือแก้ไขไฟล์ได้โดยอัตโนมัติ
อย่างไรก็ตาม แม้จะอยู่ในสถานะนี้ ระบบจะยังขอ Accpet จากผู้ใช้ในการรันคำสั่งหรือค้นหาเว็บ
เมื่อกด Shift+Tab
อีกครั้ง จะเปลี่ยนเป็น "plan mode on"
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ > │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
⏸ plan mode on (shift+tab to cycle)
"plan mode on" คือ Mode ที่จะทำการวางแผนล่วงหน้าก่อนที่จะสร้างหรือแก้ไขไฟล์จริง
Plan Mode ได้เปิดตัวเมื่อไม่นานมานี้ ซึ่งเป็น Mode ที่จะช่วยวางแผนก่อนการรัน Task จริง และทำงานได้ตามที่คาดหวังไว้ค่อนข้างมาก
กรณีที่ต้องการรันคำสั่งโดยอัตโนมัติ โปรดตรวจสอบการตั้งค่า Permission ที่อธิบายไว้ในส่วนถัดไป
สร้าง CLAUDE.md(สิ่งที่คล้ายกับ Rules)
ใน Claude Code สิ่งที่สอดคล้องกับ Rules ใน Cursor หรือ Cline จะเรียกเป็นศัพท์เฉพาะว่า memory
ใน memory สามารถบันทึกสิ่งต่างๆ ได้ เช่น Coding style guidelines หรือ Command ที่ใช้บ่อยเพื่อให้ Claude Code จดจำพฤติกรรมร่วมกันข้าม Session ได้
memory แบ่งออกเป็น 3 ประเภทดังนี้
ประเภทของ Memory | ตำแหน่ง | วัตถุประสงค์ | ตัวอย่างการใช้งาน |
---|---|---|---|
Project Memory | ./CLAUDE.md |
เอกสารชี้แนะของโปรเจกต์ที่ใช้ร่วมกันในทีม | Project architecture, Coding standards, Common workflow |
User Memory | ~/.claude/CLAUDE.md |
การตั้งค่าส่วนบุคคลที่ใช้ได้กับทุกโปรเจกต์ | Code style settings, Personal tool shortcuts |
Project Memory (Local) | ./CLAUDE.local.md |
การตั้งค่าส่วนบุคคลที่เฉพาะกับโปรเจกต์ใดโปรเจกต์หนึ่ง | (ไม่รองรับ, ดูที่ด้านล่าง) เช่น Sandbox URL, Test data ที่ชอบใช้ |
สิ่งที่เป็นข้อดีของ Claude Code คือระบบจะวิเคราะห์ Codebase และสร้าง memory นี้โดยอัตโนมัติโดยการรันคำสั่ง /init
เมื่อรันคำสั่ง /init
ระบบจะวิเคราะห์ Codebase และสร้างไฟล์ CLAUDE.md
> /init
● I'll analyze the codebase and create a CLAUDE.md file to help future instances of Claude
Code work effectively in this repository.
● Write(CLAUDE.md)
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ Create file │
│ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ CLAUDE.md │ │
│ │ │ │
│ │ # CLAUDE.md │ │
│ │ │ │
│ │ This file provides guidance to Claude Code (claude.ai/code) when working with code in │ │
│ │ this repository. │ │
│ │ │ │
│ │ ## Commands │ │
│ │ │ │
│ │ ### Running the Application │ │
│ │ ```bash │ │
│ │ python main.py │ │
│ │ ``` │ │
│ │ │ │
│ │ ## Architecture │ │
│ │ │ │
│ │ This is a simple Python project with a single main.py file that demonstrates S3 bucket │ │
│ │ listing functionality using boto3. │ │
│ │ │ │
│ │ ## Dependencies │ │
│ │ │ │
│ │ - boto3: AWS SDK for Python │ │
│ │ - Requires AWS credentials to be configured │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │
│ Do you want to create CLAUDE.md? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again this session (shift+tab) │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
โดยค่า Default จะถูกสร้างเป็นภาษาอังกฤษ แต่สามารถสั่งให้สร้างเป็นภาษาไทยได้เช่นกัน
> /init "สร้างเป็นภาษาไทย"
● วิเคราะห์ Codebase ปัจจุบันและสร้างไฟล์ CLAUDE.md
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ Create file │
│ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ CLAUDE.md │ │
│ │ │ │
│ │ # CLAUDE.md │ │
│ │ │ │
│ │ This file provides guidance to Claude Code (claude.ai/code) when working with code in │ │
│ │ this repository. │ │
│ │ │ │
│ │ ## การรันโค้ด │ │
│ │ │ │
│ │ ### การรัน Application │ │
│ │ ```bash │ │
│ │ python main.py │ │
│ │ ``` │ │
│ │ │ │
│ │ ## สถาปัตยกรรม │ │
│ │ │ │
│ │ นี่คือสคริปต์ Python ที่ใช้แสดงรายการ AWS S3 buckets โดยใช้ไลบรารี boto3 โปรเจคมีไฟล์เดียวคือ
│ │ `main.py` │ │
│ │ │ │
│ │ - boto3: AWS SDK (ไลบรารีสำหรับเชื่อมต่อ AWS ด้วย Python) │ │
│ │ - จำเป็นต้องตั้งค่า AWS credentials │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │
│ Do you want to create CLAUDE.md? │
│ ❯ 1. Yes │
│ 2. Yes, allow all edits during this session (shift+tab) │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
เมื่อเลือก Yes
ไฟล์ CLAUDE.md
จะถูกสร้าง
● Write(CLAUDE.md)
⎿ Wrote 19 lines to CLAUDE.md
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in
this repository.
## คำสั่ง
### การรัน Application
```bash
python main.py
```
… +9 lines (ctrl+r to expand)
● สร้าง CLAUDE.md เป็นภาษาไทยเรียบร้อยแล้ว
เกี่ยวกับ Shortcuts
เมื่อกดปุ่ม ?
Shortcuts จะแสดงขึ้นมา
! for bash mode double tap esc to clear input ctrl + _ to undo
/ for commands shift + tab to auto-accept edits ctrl + z to suspend
@ for file paths ctrl + r for verbose output
# to memorize backslash (\) + return (⏎) for
newline
อาจจะดูเข้าใจยากเล็กน้อย แต่มี Shortcuts 8 อันที่แสดงเป็น 2 คอลัมน์
จนถึงตรงนี้เราได้ใช้เครื่องหมายอย่างเช่น /
ไปแล้ว แต่จะขออธิบายความหมายของแต่ละอย่างไว้ด้านล่างนี้
การทำงาน (Operation) | เนื้อหา (Description) |
---|---|
! for bash mode | สามารถรันคำสั่ง เช่น ls หรือ cd ได้บน REPL ของ Claude |
/ for commands | สามารถรัน Slash commands ได้ |
@ for file paths | สามารถระบุ File context ได้ |
# to memorize | สามารถบันทึกลง memory ได้ |
double tap Esc to undo | สามารถย้อนกลับไปที่การรันครั้งก่อนได้โดยกดปุ่ม Esc สองครั้งติดกัน |
shift + tab | สามารถสลับโหมดได้ตามที่อธิบายไว้ข้างต้น |
ctrl + r for verbose output | สามารถตรวจสอบรายละเอียดผลลัพธ์ของการรันครั้งก่อนได้ |
\⏎ for newline | สามารถขึ้นบรรทัดใหม่ระหว่างการพิมพ์ได้โดยพิมพ์ Backslash แล้วกด Enter |
สามารถกดปุ่ม esc
สองครั้งติดกันเพื่อ Undo ได้ และสามารถใช้ !
เพื่อรันคำสั่ง เช่น ls
หรือ cd
ได้เช่นกัน
นอกจากนี้ยังสามารถขึ้นบรรทัดใหม่ได้ด้วย \
+ Enter แต่ถ้าเป็น Terminal ที่ใช้ใน VSCode จะสามารถขึ้นบรรทัดใหม่ได้ด้วย "Alt + Enter" เช่นกัน เพิ่งได้รับข้อมูลนี้มา! (ขอขอบคุณคุณ Sawara (@xhiroga) ด้วยครับ)
ตัวอย่างด้านล่างนี้เป็นการใช้ #
เพื่อเพิ่มข้อมูลเข้าไปใน memory
# ใส่ type annotation ไว้ในฟังก์ชัน Python เสมอ
จากนั้นระบบจะถามว่าจะเพิ่มลงใน memory ไหน ก็ให้เลือกอันที่ต้องการใช้บันทึก
╭──────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Where should this memory be saved? │
│ │
│ ❯ 1. Project memory Saved in ./CLAUDE.md │
│ 2. User memory Saved in ~/.claude/CLAUDE.md │
│ │
│ Example project memory: “Run lint with the following command after major edits: npm run │
│ lint” │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
เนื่องจากครั้งนี้ได้เลือก Project memory จึงสามารถยืนยันได้ว่า CLAUDE.md
มีการเพิ่มบันทึกดังต่อไปนี้แล้ว
## Development Guidelines
- ใส่ Type annotation ในทุกฟังก์ชันของ Python
การทำงานร่วมกับ IDE
Claude Code รองรับการทำงานร่วมกับ IDE ด้วย
(ในช่วง GA เดือนพฤษภาคม มีการประกาศรองรับ IDE ซึ่งถือเป็นอีกหนึ่งปัจจัยที่ทำให้ Claude Code ได้รับความนิยมมากขึ้น)
IDE ที่รองรับมีระบุไว้ด้านล่าง ได้แก่ VSCode ที่รวมถึง forks และ IDE ของ JetBrains
(ดังนั้น Cursor ก็อยู่ในกลุ่มที่รองรับด้วย)
ฟังก์ชันที่รองรับในการทำงานร่วมกับ VSCode มีดังต่อไปนี้
ฟังก์ชัน | รายละเอียด |
---|---|
(1) การติดตั้ง Extension อัตโนมัติ | เมื่อสตาร์ทเริ่มต้น Claude Code จาก Terminal ใน VSCode จะตรวจจับและติดตั้ง Extension ให้โดยอัตโนมัติ |
(2) Keyboard Shortcuts | รองรับการใช้ Shortcut เช่น Alt+Cmd+K (Mac) หรือ Ctrl+Alt+K (Windows/Linux) และสามารถแทรกโค้ดที่เลือกเข้าไปใน Prompt ของ Claude ได้ |
(3) การเลือก Context | ข้อความที่ถูกเลือกใน VSCode จะถูกเพิ่มเข้าไปใน Context ของ Claude โดยอัตโนมัติ |
(4) การรับรู้ Tab | Claude จะสามารถรับรู้ไฟล์ที่ถูกเปิดอยู่ใน Editor ว่าเป็น Context ได้ |
(5) การแชร์ผลลัพธ์ของ Linter และข้อมูล Error | ข้อผิดพลาด (เช่น lint, syntax) จาก VSCode จะถูกแชร์ไปยัง Claude โดยอัตโนมัติระหว่างทำงาน |
(6) Diff Display | การเปลี่ยนแปลงของโค้ดจะแสดงโดยตรงใน Diff Viewer ของฝั่ง VSCode โดยไม่ต้องผ่าน Terminal |
ฟังก์ชัน (3)-(6) จำเป็นต้องมีการเชื่อมโยงระหว่าง IDE และ Claude Code
ข้อควรระวังในการเชื่อมโยง (Linking/Association) มีดังนี้
- Claude Code ต้องถูกเริ่มต้นอยู่ภายใต้โฟลเดอร์เดียวกับที่ IDE ทำงานอยู่
- IDE Window และ Claude Code Terminal จะต้องเป็นการเชื่อมแบบ 1 ต่อ 1 (หากผูกกับอีกฝั่งหนึ่ง สิ่งที่ถูกผูกไว้ก่อนหน้าจะเป็น disconnected)
ต่อไปจะลองทำการเชื่อมโยง โดยตอนนี้ถือว่ายังไม่ได้เชื่อมโยงอยู่ตามตัวอย่างด้านล่าง
เมื่อรันคำสั่ง /ide
ที่นี่ ระบบจะแสดงหน้าจอให้เลือกว่าจะเชื่อมโยงกับ IDE ใดเช่นเดียวกับด้านล่างนี้
เมื่อเลือก IDE ด้านบนแล้ว จะมีสัญลักษณ์หรือข้อความสีเขียวปรากฏที่มุมล่างขวา ซึ่งเป็นสถานะที่ถูกเชื่อมต่อเรียบร้อยแล้ว
ในสถานะนี้หากเลือก line จากฝั่ง IDE, line ที่ถูกจดจำเป็น Context จะถูกแสดงที่มุมล่างขวา
สรุป
เป็นยังไงกันบ้างครับ
หวังว่าบทความนี้จะเป็นประโยชน์สำหรับผู้ที่กำลังคิดจะเริ่มใช้งาน Claude Code ครับ
และอย่างที่ได้กล่าวไว้ตั้งแต่ต้น บทความนี้ยังมีตอนต่อ (ตอนจบ) ด้วย อย่าลืมลองไปอ่านกันนะครับ
บทความต้นฉบับ
แปลโดย: POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !