Vim หรือ Emacs ใช้งานได้กับภาษาเช่น. Net หรือ Java หรือไม่? [ปิด]


18

ดังนั้นฉันเป็นนักพัฒนา. Net ที่ทำอะไรบางอย่างใน Java, Python และอื่น ๆ เป็นครั้งคราว ฉันเคยได้ยินคนจำนวนมากยกย่อง Vim และ Emacs เพื่อเพิ่มประสิทธิภาพอย่างมากเมื่อพื้นฐานถูกตอกลง ฉันสามารถเห็นได้อย่างชัดเจนว่าฟีเจอร์ต่าง ๆ นั้นมีประโยชน์มากเพียงใดด้วยการฝึกฝนอย่างเพียงพอและแม้กระทั่งเชื่อว่าช่วงการเรียนรู้น่าจะคุ้มค่ากับความพยายาม อย่างไรก็ตาม ... ดูเหมือนว่าคุณจะต้องเป็นตัวช่วยสร้างของแมโครและปุ่มลัดเพื่อให้มีประสิทธิภาพใน Vim หรือ Emacs เนื่องจากผู้พัฒนาโดยเฉลี่ยอยู่ใน Visual Studio, Netbeans, Eclipse หรือแพลตฟอร์มอื่น ๆ ฉันเริ่มเรียนรู้ที่จะใช้ Vim และคิดว่าคุณสมบัติบางอย่างของมันยอดเยี่ยม (เช่นการแก้ไขคอลัมน์) แต่ดูเหมือนว่าเครื่องมือหลายอย่างที่จัดหาโดย IDEs ที่มีน้ำหนักมากนั้นไม่สามารถแทนที่ได้แม้กระทั่งข้อความที่ถูกทำให้ยุ่งมากที่สุด บรรณาธิการ

  • สร้างไฟล์ dbml สำหรับ Linq-to-SQL
  • การทดสอบอัตโนมัติ
  • ออกแบบ UIs
  • การสร้าง / จัดโครงการและโซลูชัน

ฉันรู้ว่า Vim และ Emacs สามารถทำสิ่งเดียวกันได้อย่างทรงพลังอย่างมากที่ VS สามารถทำได้ (เช่น intellisense, refactoring เป็นต้น) และมันอาจจะสามารถทำตัวอย่างบางส่วนหรือทั้งหมดได้ แต่เป็นเรื่องจริงหรือไม่ที่จะพูด ว่าคนที่ทำงานบนแพลตฟอร์มเหล่านี้จะได้ประโยชน์จาก Vim หรือ Emacs จริงหรือ


2
เราทำงานใน Eclipse ที่ร้านค้าของฉัน แต่มีผู้ชายที่นี่ที่ใช้ Vim เป็นเครื่องมือแก้ไข pimary ของเขาและ Eclipse สำหรับการรวบรวมและการจัดการโค้ดประเภทงาน
Michael K

คำตอบ:


14

คุณมีการผสมผสานของแนวคิดที่เกิดขึ้นซึ่งอาจไม่น่าแปลกใจเนื่องจาก VS รวมคุณลักษณะที่แตกต่างกันมากมายเข้าด้วยกัน หนึ่งคำพูด (จากเว็บไซต์นี้) แสดงให้เห็นว่า Emacs ไม่ได้เป็น IDE ที่ดีUnixเป็น IDE ที่ดี แนวคิดที่ว่าในโลก Linux / Unix คุณต้องพึ่งพาเครื่องมือพิเศษหลายอย่างที่เล่นได้ดีด้วยกันมากกว่าเครื่องมือเสาหินเดียวที่ทำได้ทั้งหมด

ตอนนี้ฉันเขียนโปรแกรมเป็นหลักใน C # และฉันใช้ VS เพื่อทำสิ่งนั้น ฉันยังรัก Emacs และใช้เพื่อสิ่งอื่นโดยทั่วไป ตอนนี้อย่างที่คุณพูดสิ่งที่คุณสามารถทำได้ใน Emacs และสิ่งที่ดีกว่าที่จะทำใน Emacs นั้นแตกต่างกัน แต่ในหลายกรณีการทำแผนที่ไม่ใช่แบบ 1 ต่อ 1 และมีหลายวิธีในการบรรลุเป้าหมายเดียวกันโดยใช้โปรแกรมแก้ไขข้อความและ / หรือเครื่องมืออื่น ๆ

เดิมทีฉันจะพูดถึงประเด็นของคุณแต่ละข้อ แต่คำตอบนั้นถูกต้มลงไปที่ "ใช่คุณทำได้" ในบางรูปแบบ โดยทั่วไปคุณจะต้องพึ่งพา: 1) เครื่องมือภายนอก (เช่นเครื่องมือออกแบบ UI) เพื่อสร้างรหัสสำหรับคุณการนำเข้า 2) การสนับสนุนอัตโนมัติจากภายในเครื่องมือแก้ไข (เช่นรหัส Elisp ใน Emacs) เพื่อทำงานซ้ำ ๆ โดยอัตโนมัติ หรือ 3) คุณต้องการปรับให้ใช้เครื่องมือที่เป็นข้อความแทนที่จะเป็นแบบเห็นภาพ (เช่นใช้ MSBuild และเขียนไฟล์โครงการของคุณเองแทนที่จะใช้การตั้งค่าของ VS)

ในโลกของ Emacs คุณไม่มีเครื่องมือที่ทำได้ทั้งหมดคุณมีเครื่องมือมากมายและความสามารถในการพัฒนาเครื่องมือมากขึ้นตามที่คุณต้องการ ฉันยังไม่ทราบดีพอที่จะทำทั้งหมดดังนั้นฉันใช้ VS และฉันมีความสุขกับเครื่องมือที่ให้ฉัน VS เป็น IDE ที่ทรงพลังและดีจริงๆ ตอนนี้ถ้าฉันทำ Java ฉันต้องอภิปรายเครื่องมือที่ฉันใช้เพราะฉันไม่รู้ Eclipse หรือ IntelliJ ดีมาก สำหรับภาษาอื่น ๆ Emacs ค่อนข้างชนะเพราะมันจะทำอะไรให้ฉันได้มากกว่าตัวแก้ไขข้อความอื่น ๆ หรือ IDE แบบกึ่งสำเร็จรูปที่ภาษาเหล่านั้นอาจใช้ (ยกเว้นอาจเป็น Smalltalk แต่เป็นกรณีพิเศษ)


6

แต่เป็นจริงหรือไม่ที่จะบอกว่าคนที่ทำงานบนแพลตฟอร์มเหล่านี้จะได้รับประโยชน์จาก Vim หรือ Emacs จริง ๆ ?

ขอยกตัวอย่าง: ฉันทำงานในระบบที่ส่วนใหญ่ (แต่ไม่ได้ 100%) ที่เขียนด้วย C # ระบบไม่สามารถสร้างจาก Visual Studio ได้ - มันซับซ้อนเกินไป ดังนั้นฉันไม่มีไฟล์ sln (บางคนพยายามรักษาไฟล์ไว้แม้ว่าเราจะไม่สร้างผลิตภัณฑ์ด้วย แต่มันกลับกลายเป็นงานที่เป็นไปไม่ได้) และไม่มีประโยชน์ของระบบ Intellisense การเรียกดูโค้ด ไดอะแกรมของชั้นเรียนเป็นต้นเครื่องมือที่ใช้งานได้สำหรับฉันคือ vim + ctags แม้จะไม่สมบูรณ์ (ctags ง่ายต่อการสับสน) แต่วิธีที่ดีกว่าการใช้โปรแกรมแก้ไขโค้ดที่ด้อยกว่าโดยไม่มีการสนับสนุนการเรียกดูรหัส

ตอนนี้ฉันเข้าใจว่านักพัฒนา. NET หรือ Java ส่วนใหญ่ไม่ได้อยู่ในตำแหน่งเดียวกับฉันและพวกเขาน่าจะใช้ IDE ได้ดีกว่าถ้ามันมีโปรแกรมแก้ไขโค้ดที่ดีหรืออย่างน้อยก็เป็น Add-in ที่ปรับปรุงค่าเริ่มต้น สำหรับ Visual Studio นั้นมีแอดออนอย่างเช่น VsVim ที่ทำให้การเขียนโค้ดสนุกยิ่งขึ้น เหมือนกันสำหรับ Eclipse AFAIK


3

ฉันสงสัยว่ามีหลายคนที่ใช้ VIM หรือ Emacs โดยเฉพาะอีกต่อไป แต่ฉันยังไม่พบนักพัฒนาที่ไม่ได้ใช้โปรแกรมแก้ไขข้อความ (ไม่ว่าจะเป็นหนึ่งในสิ่งเหล่านั้นหรืออย่างอื่น) ในความจริงที่ว่า IDE เต็มรูปแบบสำหรับบางสิ่งบางอย่างบ่อยครั้งหลายสิ่ง

จำไว้ว่างานของคุณมีมากกว่างานเขียนโค้ด Java, C # หรือ C ++ มีสคริปต์ ANT, makefiles, ไฟล์ XML, ไฟล์กำหนดค่าหลายประเภท และสำหรับหน้าที่เล็ก ๆ จำนวนมากเวลาเริ่มต้นของ IDE นั้นอาจนานเกินไป Eclipse อาจใช้เวลาไม่กี่นาทีในการเริ่มต้น VS คล้ายกัน หากต้องการเปลี่ยนบางสิ่งในแหล่งเดียวอย่างรวดเร็วหรือเพียงตรวจสอบบางสิ่งในไฟล์ที่รู้จักนั่นคือยาวเกินไป การโหลดไฟล์ใน VIM ใช้เวลาเพียงไม่กี่วินาที


1
แม้ว่า notepad ++ เช่นกัน
Raffael

ไม่เคยใช้อันนั้น แต่เคยเห็นคนอื่นใช้แล้ว (ฉันเป็น VIM flunky :))
jwenting

2

ฉันพบว่าการใช้ IDE และ vim (ตัวแก้ไขรายการโปรดส่วนตัวของฉัน) ไม่ใช่แนวคิดที่เกิดร่วมกัน เมื่อทำการพัฒนา. NET ฉันมักจะตั้งค่าคอมโบคีย์ลัดที่จะเปิดไฟล์ปัจจุบันที่ฉันทำงานอยู่ใน IDE ในกลุ่มและวางเคอร์เซอร์ในที่เดียวกัน วิธีนี้ถ้าฉันต้องการเรียงลำดับของสิ่งที่ vim นั้นยอดเยี่ยมที่ (เช่นการใช้แมโครการแก้ไขแนวตั้งการเยื้องใหม่การกระจาย ฯลฯ ) จากนั้นฉันกดปุ่มคำสั่งผสมและปังฉันมีตัวแก้ไขรายการโปรดของฉันขึ้นมาแล้ว การเปลี่ยนแปลงของฉันบันทึกไฟล์และออกจากนั้นฉันกลับสู่ IDE อีกครั้ง (คุณสามารถตั้งค่าเพื่อให้ไฟล์โหลดใหม่โดยอัตโนมัติเมื่อมีการแก้ไขนอก IDE ใน VS) ด้วยวิธีนี้ฉันจะได้รับสิ่งที่ดีที่สุดของทั้งสองโลก

ฉันเคยใช้ภาษาสคริปต์เพื่อจัดการไฟล์ข้อความด้วยวิธีที่ซับซ้อน เมื่อฉันค้นพบพลังของการใช้มาโครของกลุ่ม (และคุณสมบัติอื่น ๆ ด้วย) ฉันค้นพบว่าฉันสามารถทำการแก้ไข / การจัดการประเภทนี้ได้เร็วและมีประสิทธิภาพมากกว่าที่ฉันทำได้ด้วยภาษาสคริปต์

เป็นเรื่องธรรมดามากสำหรับฉันที่จะสร้างเชลล์สคริปต์หนึ่งครั้งเพื่อทำสิ่งที่ซับซ้อนโดยใช้ vim เรียกใช้เชลล์สคริปต์ที่ฉันสร้างขึ้นแล้วโยนทิ้งไป

2 เซ็นต์ของฉัน :)


ใช่ฉันเล่นกับปลั๊กอินไม่กี่สำหรับ VS ที่จะข้ามฉันเข้าไปใน emacs ใช้ emacs เป็น "หน้าต่างตัวแก้ไขโค้ด" หรือเพียงแค่ใช้ปุ่มกด emacs ยังไม่ได้รักใครเลย มาโครที่ป๊อปอัพ emacs และกระโดดไปที่จุดเคอร์เซอร์เดียวกันฟังดูเหมือนไอเดียเจ๋ง ๆ ฉันอาจต้องลองสิ่งนั้น ฉันส่วนใหญ่เพียงแค่คัดลอกวางระหว่างสองเมื่อฉันต้องทำการจัดการข้อความหนัก
CodexArcanum

0

ลองดูที่ที่OpenIDEและต่อเนื่องการทดสอบโครงการ คนแรกมุ่งเน้นไปที่การเพิ่มการสนับสนุนโครงการ. NET เพื่อแก้ไขใด ๆ รวมถึง VIM และ Emacs อีกคนหนึ่งเป็นนักวิ่งทดสอบอย่างต่อเนื่องคล้ายกับทับทิม AutoTest / pythons Sniffer / Autonose มันสามารถทำงานเป็นปลั๊กอิน VS หรือสแตนด์อโลน

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