การกำหนดค่า Vim สำหรับ C ++


118

ฉันต้องการสร้างกลุ่มตัวแก้ไข C ++ ของฉัน ฉันมีประสบการณ์น้อยมากในการทำงานกับมันและต้องการความช่วยเหลือในการกำหนดค่า vim ให้ทำงานกับ C ++ ฉันต้องการคุณสมบัติเช่น

  • รหัสสมบูรณ์ (สำหรับ stl และสำหรับชั้นเรียนของฉัน)
  • สลับระหว่างไฟล์. cc และ. h
  • อาจเป็นกลเม็ดอื่น ๆ ที่คุณผู้เชี่ยวชาญด้าน C ++ และกลุ่มบุคคลมี

คุณสามารถให้การกำหนดค่าบางอย่าง (พร้อมคำอธิบาย) หรือลิงก์ไปยังแบบฝึกหัดปลั๊กอินที่ฉันสามารถใช้ประโยชน์ได้?


7
+1 สำหรับพวกมาโซคิสม์อย่างแท้จริงที่ต้องการใช้ vim เป็น IDE ของคุณ :) vim มีประโยชน์ (โดยเฉพาะอย่างยิ่งสำหรับการแก้ไขไฟล์จากระยะไกลจากประสบการณ์ของฉัน) แต่ใครก็ตามที่ต้องการใช้มันสำหรับการแก้ไขโค้ดมี chutzpah ในมุมมองของฉัน
Stuart Golodetz

38
@sgolodetz: จากนั้นก็มีคนจำนวนมากที่มี chutzpah อยู่ที่นั่น
Cascabel

1
@Jefromi: ใช่ฉันรู้ว่า :) มันดูเหมือนมาโซคิสม์สำหรับฉันเสมอแม้ว่า ... ในทางที่น่าชื่นชมเล็กน้อย
Stuart Golodetz

4
เมื่อมองย้อนกลับไปฉันเดาว่าการโพสต์ข้อความที่เทียบเท่ากับ "ฉันค่อนข้างสงสัยเกี่ยวกับกลุ่มคน" ในโพสต์ที่มีผู้ที่ชื่นชอบกลุ่มนี้แวะเวียนมาจำนวนมากอาจเป็นการยั่วยุเล็กน้อย - มันควรจะเป็นเรื่องลิ้น แสดงความคิดเห็นแทนการเริ่มต้นของการโต้แย้งแม้ว่า
Stuart Golodetz

1
ฉันให้คำตอบนี้ซึ่งตอนแรก จำกัด เฉพาะการพัฒนา C อย่างไรก็ตามทุกสิ่งที่ฉันพูดยังคงใช้ได้สำหรับ C ++
Luc Hermitte

คำตอบ:


142

แก้ไข: อัปเดตเมื่อกรกฎาคม 2013


ฉันได้แก้ไขลิงก์ไปยังชุด ftplugins C & C ++ ของฉันแล้ว ขอบคุณสำหรับ "การโฆษณา" :)
Luc Hermitte

นอกจากนี้ฉันอาจแนะนำปลั๊กอิน FSwitch แทนปลั๊กอิน A
W55tKQbuRu28Q4xv

1
lhCpp ของ Luc เข้ากันไม่ได้กับ vundle (ฉันคิดว่าเป็นเพราะ svn repo) และไม่มีขั้นตอนการติดตั้งที่ฉันชอบเป็นการส่วนตัว - แนะนำให้ตรวจสอบgithub.com/Raimondi/delimitMate
netpoetica

2
+1 คำตอบที่สมบูรณ์ (และเป็นปัจจุบัน) สมควรได้รับมันเป็นเรื่องดีที่ได้เห็นสมาชิกที่สันโดษมากขึ้นโพสต์คำตอบที่ยอดเยี่ยมเหล่านี้ คำตอบของคุณละเอียดเพียงใดมีประโยชน์มากในขณะเดียวกันก็ไม่ท่วมท้นแม้แต่กับผู้ใช้กลุ่มใหม่
osirisgothra

1
แล้ว vim-rtags ล่ะ? เหมาะสำหรับการนำทางโค้ด c ++ มีฟังก์ชันการเปลี่ยนชื่อ
P4C

8

ฉันใช้vimเป็นตัวแก้ไข C ++ แต่ฉันไม่ได้ใช้สิ่งที่ 'แปลกใหม่' มากมาย

  • เกี่ยวกับการเสร็จสิ้นฉันใช้สิ่งที่ไม่ใช่บริบท^Pและ^N.
  • ฉันมีตัวย่อที่ผู้ใช้กำหนดไว้มากมายสำหรับการใช้งาน C ++ ของฉันตัวอย่างเช่น:

    abbreviate bptr boost::shared_ptr
    abbreviate cstr const std::string &
  • ฉันมีฟังก์ชันหลายอย่างสำหรับ "ข้อมูลโค้ด" เช่นสิ่งต่างๆเช่น:

    function! IncludeGuard()
      let basename = expand("%:t:r")
      let includeGuard = '__' . basename . '_h__'
      call append(0, "#ifndef " . includeGuard)
      call append(1, "#define " . includeGuard)
      call append(line("$"), "#endif /* !" . includeGuard . " */")
    endfunction
  • ปลั๊กอินเดียวที่ฉันขาดไม่ได้จริงๆคือCommand-T (ซึ่งต้องการการสนับสนุนทับทิม)

  • เพื่อความสะดวก.ccในการ.hเปลี่ยนคุณสามารถลองใช้ปลั๊กอินนี้

2

NERDTree http://www.vim.org/scripts/script.php?script_id=1658

แท็กที่อุดมสมบูรณ์ (กลุ่มรองรับปุ่มลัดโดยกำเนิดแล้ว) http://ctags.sourceforge.net/

แท็ก: http://vim-taglist.sourceforge.net/

snipmate: http://www.vim.org/scripts/script.php?script_id=2540

ฉันไม่ได้ทำ omnicompletion เพียงแค่สิ่งปกติ ^ n ^ p แต่มีทรัพยากรมากมายสำหรับ Google

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.