การบูรณาการ Claude Code IDE สำหรับ Emacs
(github.com/manzaltu)- Claude Code IDE for Emacs ผสาน Claude Code CLI เข้ากับ Emacs แบบเนทีฟ เพื่อมอบสภาพแวดล้อมผู้ช่วยเขียนโค้ดด้วย AI ที่ทรงพลัง
- ผ่านสะพานทางสองทางบนพื้นฐาน Model Context Protocol (MCP) ทำให้ Claude สามารถใช้งานความสามารถต่างๆ ของ Emacs ได้ เช่น LSP, การจัดการโปรเจกต์ และฟังก์ชัน Elisp
- ให้ฟีเจอร์ที่ปรับให้เหมาะกับ Emacs เช่น การตรวจจับโปรเจกต์อัตโนมัติ การจัดการหลายเซสชัน การผสานการวินิจฉัย (ข้อผิดพลาด/คำเตือน) การแสดง diff ระดับสูง tab-bar และการติดตามการเลือก/บัฟเฟอร์
- อาศัยคำสั่งและความสามารถในการขยายของ Emacs ทำให้สามารถเผยแพร่คำสั่งแบบตรงไปตรงมาผ่าน เซิร์ฟเวอร์ MCP และเชื่อมต่อกับเวิร์กโฟลว์แบบกำหนดเองได้
- ผ่านการเชื่อมโยงอย่างลึกซึ้งระหว่าง Claude และระบบนิเวศ Emacs ทั้งหมด ในการสร้างสภาพแวดล้อมการพัฒนาที่รองรับ AI บนคลาวด์
ภาพรวม
Claude Code IDE for Emacs เป็นโปรเจกต์โอเพนซอร์สที่เชื่อมต่อกับ Claude Code CLI เพื่อเพิ่มศักยภาพของ Claude AI ภายในสภาพแวดล้อมของ Emacs สูงสุด โดยแตกต่างจาก wrapper เทอร์มินัลแบบธรรมดา แพ็กเกจนี้ออกแบบมาเพื่อให้ Claude สามารถใช้งานฟังก์ชันภายในของ Emacs ได้จริง โดยให้สะพานการสื่อสารแบบสองทางที่อิง MCP (Model Context Protocol) และเชื่อมกับระบบนิเวศของ Emacs เช่น LSP, การจัดการโปรเจกต์, ฟังก์ชัน Elisp เพื่อสร้าง สภาพแวดล้อมช่วยพัฒนาด้วย AI ที่เน้นประสิทธิภาพและชาญฉลาดสำหรับผู้ใช้ Emacs
คุณสมบัติหลัก
-
การตรวจจับโปรเจกต์อัตโนมัติและการจัดการเซสชัน
- ใช้ project.el ที่ฝังใน Emacs เพื่อรับรู้โปรเจกต์โดยอัตโนมัติและแยกเซสชัน
- ให้บัฟเฟอร์และอินสแตนซ์ Claude Code แยกตามแต่ละโปรเจกต์
-
การผสานเทอร์มินัลและรองรับสี
- รองรับเทอร์มินัลสีผ่าน vterm หรือ eat
- สนทนา/โต้ตอบกับ Claude ได้ภายใน Emacs
-
การรวมเข้ากับ IDE ผ่านโปรโตคอล MCP
- เปิดเผยคำสั่ง Emacs หลากหลาย (การนำทางโค้ด การค้นหา symbol การวิเคราะห์ AST ฯลฯ) เป็น MCP server
- Claude สามารถรันคำสั่ง Emacs และฟังก์ชันที่ผู้ใช้กำหนดเองได้
-
เซิร์ฟเวอร์ MCP Tools ที่ขยายได้สูง
- สามารถเพิ่ม/กำหนด MCP tool แบบส่วนตัวได้ (เช่น ค้นหาในโปรเจกต์ทั้งหมด, refactoring ทั่วระบบ เป็นต้น)
-
การวินิจฉัยโค้ดและ Diff
- ให้ข้อมูลการวินิจฉัยข้อผิดพลาด/คำเตือนผ่านการผสาน Flycheck และ Flymake
- รองรับมุมมอง diff ระดับสูงด้วย ediff และการเข้าถึงข้อมูลการวินิจฉัย
-
การจัดการการสลับสถานะ/คำสั่ง
- ด้วย tab-bar, การเลือก/ติดตามบัฟเฟอร์ ฯลฯ ช่วยให้ Claude เข้าใจบริบทปัจจุบันของผู้ใช้ได้
การรวมเครื่องมือของ Emacs
Claude Code IDE เปิดเผยคำสั่งและข้อมูลต่าง ๆ ของ Emacs ให้ Claude โดยตรงผ่านระบบ MCP tool
-
การผสาน LSP (xref)
- รองรับการนำทางอัจฉริยะด้วย LSP เช่น Go-to-definition และการค้นหาสัญลักษณ์/การอ้างอิงทั่วทั้งโปรเจกต์
-
การรองรับ Tree-sitter
- ให้ความเข้าใจโครงสร้างโค้ดผ่านการวิเคราะห์ syntax tree และ AST (Abstract Syntax Tree)
-
การรวม Imenu, Project
- จัดหาบัญชีสัญลักษณ์ รายการไฟล์โปรเจกต์ และข้อมูลโครงสร้างโปรเจกต์โดยอัตโนมัติ
-
ฟังก์ชัน Elisp ที่กำหนดเอง
- เปิดเผยผ่าน MCP tool โดยตรง เพื่อใช้ฟังก์ชันที่ปรับตาม workflow/โดเมนเฉพาะได้
การรวมแบบนี้ทำให้ Claude ใช้บริบทข้อมูลจากระบบนิเวศ Emacs เพื่อให้ การช่วยเหลือด้วย AI ระดับโค้ดที่แม่นยำ ได้
การใช้งาน
คำสั่งพื้นฐาน
M-x claude-code-ide-menu: เปิด transient menu ที่แสดงคำสั่งทั้งหมดแบบภาพรวม- เปิดใช้งาน Claude Code ภายในโปรเจกต์ ส่ง prompt รับต่อการสนทนาก่อนหน้า และจัดการสถานะ/เซสชันแบบหลากหลาย
- สามารถจัดการหลายโปรเจกต์พร้อมกันและใช้งานเซสชัน Claude เฉพาะของแต่ละโปรเจกต์ได้
การจัดการหน้าต่างและเซสชัน
- หากมีการเรียกใช้งานเซสชันใหม่อยู่แล้ว จะทำเพียงการสลับหรือแสดงหน้าต่าง
- แม้ปิดหน้าต่างด้วยคำสั่งมาตรฐานของ Emacs (C-x 0) Claude เองก็ไม่ถูกปิด
การตั้งค่า
- รองรับการปรับแต่งรายละเอียดต่าง ๆ ได้อย่างละเอียด เช่น Claude Code CLI, backend ของเทอร์มินัล, backend การวินิจฉัย, ตำแหน่ง/ขนาดหน้าต่าง, ตัวเลือกโหมดดีบัก
- มีตัวเลือกขั้นสูง เช่น เพิ่ม flag, กำหนด system prompt, กำหนดฟังก์ชันตั้งชื่อตัวบัฟเฟอร์ เป็นต้น
- เปิดใช้ MCP server และกำหนด tools/พอร์ตที่ใช้ได้
ตั้งค่า Terminal Backend
- ค่าเริ่มต้นคือ vterm และสามารถสลับไปใช้ eat backend เมื่อจำเป็น
- eat เป็นเทอร์มินัลที่ใช้ Elisp ล้วน เหมาะสำหรับกรณีที่มีปัญหาในการ build vterm
- มี key binding เฉพาะ (M-RET: ขึ้นบรรทัดใหม่ใน prompt, C-<escape>: ออกจาก/ยกเลิก ฯลฯ)
ตัวเลือกการวินิจฉัย/ดีบัก
- รองรับการตรวจจับและผสาน Flycheck, Flymake แบบอัตโนมัติ หรือกำหนดแบบบังคับ
- มีตัวเลือกชั่วคราวเพื่อลดปัญหา reflow (จัดเรียงใหม่) ของ Claude terminal ตามบั๊ก #1422
- รองรับบันทึกดีบักเชิงลึกในระดับ Emacs และ CLI (ตรวจสอบข้อความ WebSocket, JSON-RPC ฯลฯ ได้)
Advanced: หลาย Worktree และการควบคุมเซสชัน
- ใช้ git worktree เพื่อรันเซสชันอิสระหลายตัวแยกสาขาในโปรเจกต์เดียวกันได้
- รักษาบัฟเฟอร์และบริบทเฉพาะสำหรับแต่ละกลุ่มงาน รองรับเวิร์กโฟลว์การพัฒนาขนาน
รายละเอียด Emacs MCP Tools
ตัวอย่าง MCP Tools ที่มีอยู่
- xref-find-references: ค้นหาการอ้างอิงของ symbol ที่เจาะจงในโปรเจกต์ทั้งหมด
- xref-find-apropos: ค้นหาสัญลักษณ์/โค้ดทั้งหมดแบบ pattern-based
- treesit-info: ให้ข้อมูลการวิเคราะห์ AST จาก tree-sitter
- imenu-list-symbols: แสดงรายชื่อฟังก์ชันและตัวแปรทั้งหมดในไฟล์
- project-info: ให้ข้อมูล metadata และไฟล์ของโปรเจกต์ปัจจุบัน
การเพิ่มเครื่องมือแบบกำหนดเอง
- ผู้ใช้สามารถเพิ่มฟังก์ชัน Emacs ของตนเองเป็น MCP tool ได้ตามรูปแบบเดียวกัน
- ตัวอย่างเช่น นิยามเครื่องมือค้นหาโค้ดด้วย ripgrep หรือคำสั่งเฉพาะโดเมน แล้วเรียกใช้งานโดยตรงจาก Claude
ลิขสิทธิ์และโปรเจกต์ที่เกี่ยวข้อง
- ให้บริการภายใต้ GNU GPL v3.0 หรือสูงกว่า
- แนะนำโปรเจกต์ที่เกี่ยวข้อง เช่น plugin รวมเข้ากับ VS Code และปลั๊กอิน Neovim (claudecode.nvim)
ความสำคัญและจุดเด่น
Claude Code IDE for Emacs เสนอสภาพแวดล้อม AI IDE ที่ทรงพลัง โดยสามารถใช้ บริบทการทำงานที่เป็นของ Emacs และข้อมูลระบบนิเวศโดยตรง ได้อย่างเข้มข้น แตกต่างจากเครื่องมือรวม LLM/AI แบบเดิม แม้ยังอยู่ในช่วงต้น แต่มีฟังก์ชันในตัวที่หลากหลาย ความสามารถในการปรับแต่งสูง และการรองรับหลายโปรเจกต์ ทำให้เป็นตัวเลือกที่ทรงพลังมากสำหรับผู้ใช้ Emacs และนักพัฒนาโอเพนซอร์ส
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
notebookllmของ Google นี่ต้องการมากจริง ๆ