12 เคล็ดลับสำหรับคนที่อยากใช้ Cursor ให้ฉลาดขึ้น
(stdy.blog)อ้างอิงข้อมูล ณ วันที่ 23/6 และจัดทำขึ้นจากประสบการณ์ของผมเอง + Reddit ของ Cursor + ชุมชน Cursor + SNS + บทความบล็อกหลายแห่งรวมกัน ยินดีรับคำโต้แย้ง คำวิจารณ์ และการถกเถียง
เคล็ดลับ 1. เลือกโมเดลอย่างมีกลยุทธ์
- แต่ละโมเดลมีความสามารถด้านการเขียนโค้ด ความเร็ว และต้นทุนต่างกัน จึงสำคัญมากที่จะต้องเลือกให้เหมาะกับสถานการณ์
- โมเดลแบบ Thinking (เช่น Claude 4, Gemini 2.5 Pro) มีความเป็นอิสระสูง แต่ช้า
- โมเดลแบบ Non-Thinking (เช่น GPT 4.1) ทำตามคำสั่งที่ชัดเจนได้ดีและเร็ว
- โมเดลที่แนะนำจะแตกต่างกันไปตามประเภทงาน (เช่น การแก้ไขเล็กน้อยใช้ Sonnet, การวางแผนซับซ้อนใช้ Opus)
- ฟีเจอร์
Auto-selectยังไม่น่าเชื่อถือมากนัก จึงควรลองใช้หลายโมเดลด้วยตัวเองแล้วหาสไตล์ที่เหมาะกับตัวเอง
เคล็ดลับ 2. เวลาจะแก้แอปที่ซับซ้อน ให้เริ่มวางแผนใน โหมด Ask ก่อน
- โหมด Agent จะแก้โค้ดโดยตรง ดังนั้นในแอปที่ซับซ้อนจึงมีโอกาสทำให้ฟังก์ชันเดิมพังได้
- โหมด Ask เป็นโหมดอ่านอย่างเดียวที่ไม่แก้ไฟล์ จึงมีประโยชน์มากสำหรับการวางแผน
- วิธีที่ปลอดภัยคือคุยแผนกับ AI ในโหมด Ask ก่อน แล้วค่อยไปลงมือในโหมด Agent
- ถ้าเขียนพรอมป์ให้ชัด เช่น “อย่าเพิ่งแก้ตอนนี้” ก็จะช่วยลดพฤติกรรมเกินความจำเป็นของโหมด Ask ได้
- ส่วนโหมด Manual ต้องระบุไฟล์อ้างอิงเอง จึงค่อนข้างใช้งานได้น้อย
เคล็ดลับ 3. เวลา debug อย่าเพิ่งให้มันแก้ไฟล์ทันที แต่ให้หาสาเหตุด้วยการทดสอบก่อน
- ถ้าโยนให้ AI แก้บั๊กทันที มักจะเจอกับความล้มเหลวซ้ำ ๆ ได้ง่าย
- ขั้นที่ 1 (Agent): ให้มันเขียน test ที่ “ต้องล้มเหลว” เพื่อจำลองบั๊กก่อน (แนวทาง TDD)
- “เมื่อกด Y ในหน้า X มันควรทำงานแบบ A แต่ตอนนี้กลับทำงานแบบ B ฉันอยากแก้แบบ TDD ช่วยเขียนและรัน test ที่จำลองอาการนี้ให้หน่อย จำไว้ว่าตอนนี้ test ต้อง fail ก่อนนะ ถ้าฉันเข้าใจผิดและจำลองไม่ได้ก็บอกมา แล้วอย่าเริ่มแก้ปัญหาก่อนที่ฉันจะสั่ง”
- ขั้นที่ 2 (Ask): ให้มันอธิบายสาเหตุที่เป็นไปได้และวิธีตรวจสอบ เพื่อหาต้นตอของปัญหา
- “ฉันกำลังหาต้นตอของบั๊กนี้ ช่วยเสนอความเป็นไปได้ว่าปรากฏการณ์นี้เกิดขึ้นเพราะอะไร และเกิดขึ้นเมื่อไรได้บ้าง แล้วช่วยบอกวิธีตรวจสอบด้วยว่าในตัวเลือกเหล่านั้น อะไรคือสาเหตุจริง เช่น ต้องการข้อมูลอะไรเพิ่ม ควรใส่ log อะไรบ้าง ฯลฯ ยังไม่ต้องลงมือทำ แค่อธิบายมาก็พอ ถ้าระหว่างเขียน test คุณหาสาเหตุเจอแล้วก็อธิบายส่วนนั้นมาได้เลย”
- ขั้นที่ 3 (Agent): ล็อก test ไว้ด้วย
.cursorignoreแล้วสั่งให้แก้โค้ดจนกว่า test จะผ่าน- “ช่วยเพิ่ม test ที่สร้างไว้ก่อนหน้านี้ลงใน .cursorignore จากนั้นให้ไล่หาต้นตอของปัญหาตามลำดับความเป็นไปได้ที่คุณเสนอไว้ และสรุป flow การทำงานที่ควรจะเป็นในรูปแบบ flowchart แล้วใช้ flow ที่ควรจะเป็นนั้นแก้โค้ดจนกว่า test จะผ่าน ถ้ามีอะไรที่ฉันต้องตรวจสอบหรือเข้ามามีส่วนร่วมก็บอกด้วย”
- การมี กฎสำหรับการเขียน test แยกไว้ก็มีประโยชน์
เคล็ดลับ 4. ให้ Cursor จัดการกฎเองเพื่อให้ฉลาดขึ้นเรื่อย ๆ
- ถ้าในเซสชันแชตมีการพูดคุยที่มีสาระ สามารถใช้ฟีเจอร์ /Generate Cursor Rules ได้
- แค่ขอว่า “ช่วยสร้างหรือแก้ Rule จากบทสนทนาครั้งนี้ให้หน่อย”
- โดยเฉพาะหลังจาก debug แล้ว หากเจอสาเหตุของบั๊ก ก็ควรให้มันเพิ่ม/แก้ Rule เพื่อไม่ให้พลาดแบบเดิมอีก
- วิธีนี้ช่วยให้ Cursor เรียนรู้ ดูแลกฎ และฉลาดขึ้นได้เรื่อย ๆ ด้วยตัวเอง
เคล็ดลับ 5. ใช้หลายแท็บและตัวเลือก Auto เพื่อเพิ่มประสิทธิภาพ
- ใน Cursor สามารถใช้หลายแท็บแชตพร้อมกันได้ ระหว่างที่ Agent กำลังแก้โค้ดในแท็บหนึ่ง คุณก็ไปใช้โหมด Ask ทำงานอื่นในอีกแท็บได้
- ถ้าเปิดตัวเลือก
Auto-runไว้ ก็ไม่ต้องมานั่งอนุมัติการรันเทอร์มินัลหรือการเขียนไฟล์ทีละอย่าง ระบบจะทำต่อให้อัตโนมัติ - ถ้าเปิด
Auto-Fix Lintsไว้ มันจะช่วยแก้ type error และปัญหาอื่น ๆ ให้อัตโนมัติ สะดวกมาก
เคล็ดลับ 6. อย่าใช้แชตเซสชันเดียวต่อเนื่องนานเกินไป
- ถ้าแชตยาวเกินไป AI อาจลืมข้อมูลสำคัญก่อนหน้าเพราะติดข้อจำกัดขนาดคอนเท็กซ์ (Cursor จะสรุปอัตโนมัติ)
- เมื่อจบงานหนึ่งอย่างแล้ว การเริ่มแชตเซสชันใหม่มักได้ผลดีกว่า
- ในแชตใหม่สามารถใช้
@Past Chatsเพื่อดึงสรุปบทสนทนาเก่ามาใส่เป็นคอนเท็กซ์ได้ - ถ้าเก็บเนื้อหาสำคัญเป็นกฎไว้แล้ว (เคล็ดลับ 4) ก็ยิ่งไม่จำเป็นต้องฝืนคุยแชตยาว ๆ
เคล็ดลับ 7. เมื่อมีการเปลี่ยนแปลงที่สำคัญเสร็จแล้ว ต้อง commit เสมอ
- เมื่อจบงานหนึ่งอย่าง ควรมีนิสัย commit ลง Git ทุกครั้ง
- commit คือเซฟตี้ขั้นต่ำสำหรับย้อนกลับไปได้ ถ้า AI แก้โค้ดผิด
- คุณสามารถขอให้ Cursor ช่วยได้ตั้งแต่การตั้งค่า Git เบื้องต้นไปจนถึงการเขียน commit message
- “ฉันอยากอัปโหลด codebase นี้ขึ้น GitHub แต่ปัญหาคือฉันไม่รู้อะไรเลยทั้ง Git และ GitHub แถมยังไม่มีบัญชีด้วย ฉันก็ไม่รู้ว่าเครื่องนี้ติดตั้ง Git แล้วหรือยัง ช่วยแนะนำแบบ step-by-step ให้หน่อย”
- และยังใช้ฟีเจอร์ AI Commit Message เพื่อสร้าง commit message อัตโนมัติได้ด้วย
เคล็ดลับ 8. บอกโครงสร้างโค้ดให้ Cursor รู้ และจัดการความยาวไฟล์กับชื่อไฟล์ให้ดี
- ควรเข้าใจลักษณะของ Tools ภายในของ Cursor
List Directoryจะไม่อ่านเนื้อหาในไฟล์ แต่จะอ่านเฉพาะชื่อไดเรกทอรีและชื่อไฟล์Read Fileจะอ่านเนื้อหาไฟล์ได้สูงสุดครั้งละ 250 บรรทัด (ในโหมด Max คือ 750 บรรทัด)- ถ้าไฟล์หรือไดเรกทอรีที่อ้างอิงมีขนาดใหญ่เกินไป ระบบจะบีบอัดแทนการใส่ทั้งหมด โดยจะเหลือเฉพาะส่วนสำคัญ เช่น จุดที่มีการเรียกใช้ฟังก์ชัน
- ในหนึ่งแชตเซสชันเรียก Tool ได้แค่ 25 ครั้ง ถ้าจะใช้ต่อ ต้องกด Continue เอง (แม้จะเปิดตัวเลือก Auto apply edit ก็เหมือนกัน ส่วนโหมด Max ใช้ได้ถึง 200 ครั้งโดยไม่ต้องกด Continue)
- ดังนั้นควรตั้งชื่อไฟล์และไดเรกทอรีให้สื่อบทบาทชัดเจน และควรรักษาความยาวไฟล์ให้อยู่ภายใน 500 บรรทัด
- ถ้าเพิ่มข้อมูลโครงสร้างไดเรกทอรีหลักหรือข้อมูลคอมโพเนนต์สำคัญไว้ในกฎ
Always Appliedก็จะช่วยให้ AI ไม่ต้องเสียเวลาสำรวจซ้ำทุกครั้ง - คุณยังสามารถขอให้มันสร้างเอกสารอธิบายโครงสร้างโค้ดแล้วเพิ่มเป็นกฎได้
- “ช่วยสร้างเอกสารที่ทำให้คุณมองเห็นโครงสร้างของ codebase นี้และไฟล์สำคัญต่าง ๆ ได้ในภาพรวม จะใช้ mermaid diagram ด้วยก็ได้ แล้วช่วยเพิ่มสิ่งนั้นเป็น project rule ที่เหมาะสมด้วย โดยตั้งค่า AlwaysApply: true”
เคล็ดลับ 9. ถ้าไฟล์เริ่มยาว ให้ Cursor ช่วยแยกโมดูล
- ถ้าไฟล์ยาวเกินไป ควรขอให้ AI ช่วยทำ modularization
- ขั้นที่ 1 (Ask): “ถ้าจะทำ modularization ให้โปรเจกต์นี้ คุณคิดว่าควรทำจากมุมมองหรือกลยุทธ์แบบไหนบ้าง เช่น 1) มุมมอง Layered Architecture 2) มุมมอง AOP 3) มุมมอง FSD 4) มุมมอง Clean Architecture”
- ขั้นที่ 2 (Ask): “ช่วยสังเคราะห์กลยุทธ์ที่คุณเสนอมา แล้ววางแผน modularization ที่เหมาะสมให้หน่อย”
- ขั้นที่ 3 (Agent): “ช่วยทำเอกสารของแผนนั้น แล้วลงมือทำตามแผน”
เคล็ดลับ 10. ใช้ @ เพื่อใส่คอนเท็กซ์อย่างจริงจัง
- การใช้สัญลักษณ์
@เพื่อใส่คอนเท็กซ์ต่าง ๆ นอกจากไฟล์และโฟลเดอร์โดยตรง จะช่วยให้ AI ทำงานได้ดีขึ้น @Code: อ้างอิงเฉพาะบางส่วนของโค้ด เช่น ฟังก์ชันหรือตัวแปรบางตัวได้@Docs: อ้างอิงเอกสารทางการของไลบรารีเพื่อให้เขียนโค้ดได้แม่นยำขึ้น โดย Cursor มี docs บางส่วนอยู่แล้ว และยังเพิ่มผ่าน URL ได้โดยตรง@Git: อ้างอิง branch หรือ commit เฉพาะจุด เพื่อเปรียบเทียบหรือให้ช่วยอธิบายได้@Web,@Link: ให้ไปค้นเว็บหรืออ่านเนื้อหาจากลิงก์ที่ระบุ@Recent Change: อ้างอิงการเปลี่ยนแปลงล่าสุดใน codebase ได้ ผมยังหาวิธีทำงานที่แน่ชัดไม่เจอ แต่ดูเหมือนจะอิงจาก unstaged changes และ commit ล่าสุด น่าจะมีประโยชน์กับคนที่ไม่ใช่นักพัฒนาซึ่งไม่ได้จัดการ commit อย่างเข้มงวด
เคล็ดลับ 11. ถ้าความปลอดภัยสำคัญ ให้เปิด Privacy mode
- ถ้าไม่เปิด Privacy mode ข้อมูลอย่างโค้ดและพรอมป์อาจถูกเก็บรวบรวมและนำไปใช้ฝึกโมเดลได้
- ถ้าเปิด Privacy mode โค้ดบางส่วนอาจถูกเข้ารหัสและเก็บชั่วคราวได้ แต่จะไม่ถูกเก็บถาวรหรือใช้ในการฝึก
- แต่ใน Privacy mode จะใช้ฟีเจอร์ใหม่บางอย่างไม่ได้ เช่น background agent
- รายละเอียดเพิ่มเติมดูได้จากเอกสารที่ Cursor อธิบายเรื่อง privacy mode
เคล็ดลับ 12. ใช้ MCP และเครื่องมือต่าง ๆ เพื่อให้การพัฒนาสะดวกและแม่นยำขึ้น
- ในด้านการจัดการ task แนะนำ memory bank, TaskMaster, Vooster
- MCP ในเอกสารทางการของ Cursorสามารถติดตั้งแบบ deep link ได้ในคลิกเดียว
- ใช้ Browserbase เปิดเบราว์เซอร์ คลิก อ่านคอนโซล ถ่าย screenshot ฯลฯ
- ใช้ PlayWright เพิ่มการทดสอบแบบ E2E
- ใช้ Sentry มอนิเตอร์และแก้ข้อผิดพลาด
- ใช้ Stripe และ Paypal สำหรับการชำระเงิน
- ใช้ Netlify และ Heroku สำหรับ deploy
- ใช้ Snyk และ Semgrep สำหรับตรวจสอบความปลอดภัย
- ใช้ Supabase อ่านและเขียนตาราง DB → แม้จะไม่อยู่ในเอกสารทางการของ Cursor แต่ผมคิดว่าสำหรับสาย vibe coder นี่คือของที่ต้องติดตั้ง
- ถ้าทำงานในบริษัท และต้องบอกคอนเท็กซ์เกี่ยวกับสถานการณ์ในบริษัทหรือผลิตภัณฑ์หลายตัวให้ละเอียด การพัฒนา MCP ขึ้นใช้เองก็เป็นทางเลือกที่ดี (ดูเพิ่มเติม: Working with Documentation)
- ยังสามารถใช้เครื่องมือภายนอกอย่าง StageWise เพื่อชี้ไปยังบางส่วนของ UI แล้วขอให้ช่วยแก้บั๊ก เป็นต้น
เคล็ดลับยิบย่อยอื่น ๆ
- โหมด Max: คิดค่าบริการตามโทเคน ไม่ใช่ตามจำนวนคำขอ และใช้คอนเท็กซ์ที่ใหญ่ขึ้นพร้อม Tool ได้มากขึ้น
- เพิ่มโมเดล: สามารถเปิดใช้งานโมเดลที่ถูกซ่อนไว้ตามค่าเริ่มต้น เช่น Claude 4 Opus ได้จากการตั้งค่า
- Custom API Key: ฟีเจอร์สำหรับเชื่อมต่อ API key ของ LLM ของตัวเอง ประโยชน์ใช้งานจริงค่อนข้างต่ำ และถึงจะทำแบบนี้ก็ยังต้องผ่านเซิร์ฟเวอร์ของ Cursor อยู่ดี
- ซิงก์การตั้งค่า: ตอนนี้ยังไม่มีการรองรับการซิงก์การตั้งค่าระหว่างหลาย PC อย่างเป็นทางการที่ดีนัก มีรายงานว่า Profile Export/Import ใช้งานได้ไม่ค่อยดี และเมื่อไม่กี่สัปดาห์ก่อนมีส่วนขยายออกมา แต่ ณ วันที่ 23/6 ยังมีปัญหาบางอย่างอยู่
- แสดงอยู่ใน VSCode Marketplace แต่ค้นไม่เจอในรายการ Extension ของ Cursor
- สามารถติดตั้งใน VSCode ก่อน แล้วใช้ฟีเจอร์
Import VSCode Settings and Extensionsของ Cursor เพื่อนำเข้ามาได้ แต่ตัวส่วนขยายกลับ initialze ไม่สมบูรณ์ (issue ที่เกี่ยวข้อง) - ดูมีแววดี เลยหวังว่านักพัฒนาจะแก้ได้เร็ว ๆ
22 ความคิดเห็น
ทิป 4 กับทิป 6 ดีมากครับ~~
มีเรื่องสงสัยอยู่อย่างหนึ่งคือ สำหรับผมโควตา 500 ครั้งต่อเดือนมันน้อยเกินจริง ๆ แบบนี้ปัญหานี้แก้กันอย่างไรครับ?
ช่วงนี้ข้อจำกัดไม่ได้ถูกยกเลิกไปแล้วเหรอ?
ผมเองก็ใช้ Claude Code ควบคู่กันไปด้วย และน่าจะเป็นเพราะพยายามส่งคำขอที่ขัดเกลามาแล้วหลังจากคุยกันจนพอใน AI Studio + ตั้งค่ากฎ + ลงมือทำเองด้วยการเติมโค้ดอัตโนมัติผ่านแท็บเมื่อจำเป็น เลยแทบไม่เคยรู้สึกว่ามันไม่พอเลยครับ
โดยพื้นฐานแล้วต้องสมัครสมาชิกแบบเสียเงินก่อนถึงจะใช้ฟีเจอร์เหล่านั้นได้ใช่ไหม? หรือถ้าใช้งานไม่มาก สมาชิกฟรีแบบพื้นฐานก็ทำตามได้เหมือนกัน?
จากประสบการณ์ของผม ดูเหมือนว่า Cursor จะค่อนข้างจำกัดทั้งฟีเจอร์และปริมาณการใช้งานในแพลนฟรี เลยอาจใช้งานฟรีได้ไม่ค่อยสะดวกนัก
แม้จะมีโมเดลที่ใช้ได้ฟรีอยู่บ้าง แต่ความสามารถด้านการเขียนโค้ดก็ไม่ค่อยดีเท่าไรครับ
ทิปดีมากครับ
ขอบคุณครับ!
มีเนื้อหาที่มีประโยชน์หลายอย่างที่ไม่เคยรู้มาก่อนด้วย ขอบคุณครับ!
ขอบคุณสำหรับเคล็ดลับดีๆ ครับ~ ได้เรียนรู้อะไรเยอะเลยครับ
ขอบคุณที่แบ่งปันเนื้อหาดี ๆ ครับ =b
"อย่างไรก็ตาม ในโหมด Privacy จะไม่สามารถใช้ฟีเจอร์ใหม่บางอย่าง เช่น background agent ได้"
=> อยากทราบรายละเอียดที่ชัดเจนครับ ขอแหล่งที่มาด้วย..
ref.
https://docs.cursor.com/background-agent
Background Agents พร้อมใช้งานใน Privacy Mode เราจะไม่นำโค้ดของคุณไปใช้ฝึกโมเดล และจะเก็บโค้ดไว้เพียงเพื่อวัตถุประสงค์ในการรัน agent เท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับ Privacy mode
อ้าว จนเมื่อไม่นานมานี้ยังใช้ไม่ได้อยู่เลย แสดงว่าเปลี่ยนแล้วสินะ!! ขอบคุณครับ
สำหรับผม
ก่อนที่ AI จะเปลี่ยนซอร์สโค้ด หรือก่อนจะถาม prompt
ผมจะสำรองซอร์สโค้ดทั้งหมดไว้ในเครื่องก่อนเสมอ
ภายใต้
./history/./hisrory/r0001/./hisrory/r0002/...ผมจะสร้างไดเรกทอรีตามโครงสร้างประมาณนี้ แล้วรันสคริปต์เพื่อสำรองซอร์สสำหรับพัฒนา..
เนื่องจากเป็นสภาพแวดล้อมการพัฒนาบน Windows จึงเป็นไฟล์ ps1 ครับ
เมื่อใช้ Git มีข้อดีข้อเสียอย่างไรเมื่อเทียบกับวิธีนี้?
ใช้ Git ไปพร้อมกันด้วย..
ในทางปฏิบัติ ตอนพัฒนาจริง AI สามารถแก้ไขซอร์สโค้ดได้เยอะมาก..
ดังนั้นถึงจะคอยตรวจเช็กทีละจุดอย่างละเอียด
ตอนบิลด์ก็ยังอาจเกิดข้อผิดพลาดหรือบั๊กได้
เพราะแบบนั้น..
ตอนจะ rollback กลับไปโค้ดเวอร์ชันก่อนหน้าจะสะดวกครับ
จะใช้ Git เพื่อ rollback โค้ดก็ได้เหมือนกัน..
แต่เพราะมีการสำรองโค้ดทั้งหมดไว้ทั้งชุด
เลยช่วยให้ค้นหาได้เร็ว และดูไปพร้อมกับว่าโค้ดเปลี่ยนตรงไหนบ้างตอนลงมือทำครับ
น่าจะใช้
git subtreeจะดีกว่านะครับgit worktree?
อ๋อ ผมจำชื่อสับสนไปเองครับ 555
worktreeต่างหากที่ถูกต้องขอบคุณสำหรับคำตอบ!
ไม่มีข้อดีอะไรเลยครับ.. ระบบจัดการเวอร์ชันก็ถูกสร้างขึ้นมาเพื่อไม่ให้ต้องทำพฤติกรรมแบบนั้นอยู่แล้ว
ในความเห็นของผม ดูแล้วน่าจะไปศึกษา
gitเพิ่มจะดีกว่าครับMCP ชื่อ context7 มีประโยชน์มาก เลยใช้บ่อยเวลาไปถามวิธีใช้ไลบรารี
อ้อ ผมนึกขึ้นได้ว่าลืมแนะนำเรื่องนี้ไป เลยอัปเดตเอกสารประกอบการสอนไปแล้ว แต่ยังไม่ได้อัปเดตบล็อก คราวนี้เลยเพิ่มเข้าไปแล้ว ขอบคุณครับ
เคล็ดลับ 2 คำถาม: แม้อยู่ในโหมด ask หากไม่ได้บอกว่าอย่าแก้ไข จะพยายามแก้ไขหรือไม่?
มีบางครั้งที่พอลองแก้ไขแล้วหมดเวลา จนทำ
edit_filesไม่ได้ ก็เลยคิดว่า "เอ๊ะ ทำไม่ได้แฮะ?" แล้วหันไปทำอย่างอื่นแทนดูเหมือนว่าจะหมายถึงการลดขั้นตอนเตรียมการที่ไม่จำเป็นซึ่งทำไปจนเกือบถึงขั้นแก้ไขจริง แม้อยู่ในโหมด Ask ก็ตาม