ฉันใช้ IDE (Eclipse) เพื่อพัฒนาซอฟต์แวร์ เหตุใดฉันจึงควรเปลี่ยนเป็นกลุ่มหรือ emacs [ปิด]


31

งานประจำวันของฉันคือผู้พัฒนา java / เว็บ ฉันใช้ eclipse เป็นเวลา ~ 5 ปี ฉันคิดว่ามันยอดเยี่ยมและฉันยังใช้ Webstorm สำหรับ javascript และ html / jsp

ฉันทำในบางครั้งต้อง ssh เข้าสู่เซิร์ฟเวอร์และยุ่งกับไฟล์ config; สำหรับสิ่งนี้ฉันใช้ vi และมันทำให้ฉันเจ็บปวด ฉันจะต้องได้รับการขึ้นหน้าเว็บรายชื่อไวยากรณ์ / คำสั่ง: กดหลบหนีแล้ว Asterix หันไปรอบ ๆ สามครั้งและข้อความจะถูกป้อนสองบรรทัดข้างต้นเคอร์เซอร์ของคุณ มันไม่ง่ายเลยสำหรับฉันและฉันคิดว่าทุกคนที่เติบโตขึ้นมาในช่วงปลายยุคแปดสิบ

นี่คือเหตุผลหลักที่ฉันคิดว่า eclipse นั้นยอดเยี่ยม (และฉันถือว่า IDE อื่น ๆ ) และอย่าเปลี่ยนเป็น emacs และ / หรือ vim

  • เกิดข้อผิดพลาดในการไฮไลต์โดยไม่จำเป็นต้องคอมไพล์โครงการซ้ำ
  • รหัสช่วย
  • refactoring
  • การเปิดการโทร hiearchy / การประกาศเปิด
  • ครบวงจรด้วยการควบคุมแหล่งที่มา
  • รวมดีบักเกอร์
  • ประโยชน์ของปลั๊กอินของบุคคลที่สาม - เช่น findbugs / checkstyle

หนึ่งในข้อโต้แย้งที่ฉันได้ยินคือเมื่อใช้ emacs / vim คุณสามารถสร้างปลั๊กอินของคุณเอง - ก็โอเค แต่คุณสามารถทำได้ใน eclipse แต่คุณไม่จำเป็นต้องทำเพราะทุกอย่างมีอยู่แล้ว! มันเหมือนกับการบอกว่าซื้อรถคันนี้ที่สร้างขึ้นมาครึ่งหนึ่งแล้ว

ทำไมคนที่ใช้ emacs / vim คนที่ใช้มันทำงานจริงในโครงการเชิงวัตถุที่ซับซ้อนในองค์กรขนาดใหญ่หรือไม่?

อะไรคือเหตุผลในการเปลี่ยนเป็นกลุ่ม / emacs ประสิทธิภาพของฉันจะเพิ่มขึ้นได้อย่างไรถ้าฉันสลับ


1
คุณช่วยกรุณาเรียบเรียงชื่อเรื่องใหม่ได้ไหม? มันไม่สมเหตุสมผลเลย
Vetle

@vetler ดีกว่าไหม
NimChimpsky

5
ฉันมักจะใช้nanoแทนvimเพราะฉันไม่ได้ใช้ CLI บ่อยครั้งพอที่จะเรียนรู้vimคำสั่งทั้งหมด ถ้าคุณจะใช้มันบางครั้งฉันคิดว่าบางสิ่งบางอย่างง่ายๆเช่นnanoจะให้บริการคุณดีกว่า ...
คณบดีฮาร์ดิง

ดีกว่ามาก! :)
Vetle

นานมาแล้วเมื่อฉันได้รับการแนะนำให้รู้จักกับยูนิกซ์ฉันลองทั้ง vi และ emacs และฉันก็ลงเอยด้วยการใช้ emacs เพราะ vi ดูเหมือนจะแปลกและไม่ชัดเจน (ฉันหมายถึงเมื่อผนวกท้ายข้อความด้วยความยุ่งยาก มีสิ่งผิดปกติอย่างแน่นอน) และโหมดคำสั่ง / แก้ไขของ vi ไม่ได้ผลสำหรับฉันเป็นการส่วนตัว
Skizz

คำตอบ:


36

ใช้เครื่องมืออะไรก็ได้ที่คุณต้องการ การรู้จัก VIM หรือ Emacs เป็นสิ่งที่ดีหากคุณต้องลงชื่อเข้าใช้เซิร์ฟเวอร์ระยะไกลและแก้ไขไฟล์กำหนดค่าหรือสิ่งที่คล้ายกัน ฉันรู้ว่า VIM นั้นสมเหตุสมผลดี แต่ฉันจะไม่ใช้มันเพื่อพัฒนาใน Java นั่นคือสิ่งที่ Eclipse, Netbeans ฯลฯ สร้างขึ้นมาเพื่อ


5
@NimChimpsky ฉันใช้ emacs สำหรับบางภาษาเช่น C, ruby, python, haskell แต่สำหรับ Java หรือ C # ฉันเชื่อว่าดีกว่าการใช้ IDE ในงานของฉันฉันใช้ C # กับ VS เพียงใช้เครื่องมือที่คุณรู้สึกว่ามีประสิทธิภาพมากขึ้น
hiena

8
เป็นเรื่องตลกที่ถ้าคุณถามใครสักคน "Why learn vi" คำตอบคือ "สักวันคุณอาจต้องลงชื่อเข้าใช้เซิร์ฟเวอร์ระยะไกลและแก้ไขไฟล์กำหนดค่า" ฉันสงสัยว่านักพัฒนาจำนวนมากต้องทำสิ่งนี้จริง ๆ
Oliver Weiler

2
PS: ส่วนตัวแล้วฉันรัก vi แต่ไม่ใช่เพราะฉันคิดว่ามันเป็นบรรณาธิการที่ดีที่สุดในโลก แต่เพราะมันทำให้ฉันรู้สึกดีกว่า :-)
Oliver Weiler

2
@ วิธีผู้ช่วย: แน่นอนฉันต้องทำเช่นนี้ทุกครั้งแล้ว! เว้นแต่คุณจะทำงานอย่างเคร่งครัดในสภาพแวดล้อม MS มันจะเกิดขึ้น
281377

1
ในการแก้ไขไฟล์กำหนดค่าเล็ก ๆ คุณไม่จำเป็นต้องใช้ Emacs หรือ Vim ถึงแม้ว่ามันจะใช้ได้ แต่ก็ไม่คุ้มค่ากับความพยายามในการเรียนรู้ว่านาโนสามารถใช้งานได้ดีเพียงใด
Anto

39

Emacs และ Vi ยังคงมีสถานที่

  • พวกมันมีอยู่ทั่วไปในสภาพแวดล้อมแบบ Unix และ Unix และสามารถติดตั้งได้บนแพลตฟอร์มยอดนิยมอื่น ๆ ส่วนใหญ่

  • พวกเขาได้รับความนิยมและมีเสถียรภาพดังนั้นการเรียนรู้พวกเขาจะได้รับผลตอบแทนในระยะยาว

  • มันวิ่งผ่านเทอร์มินัลข้อความดังนั้นคุณสามารถใช้พวกมันในเซสชัน telnet และ ssh

  • พวกเขามีโหมดการแก้ไขและการเน้นไวยากรณ์สำหรับภาษาที่หลากหลายรวมถึงภาษาที่ใหม่และหายากมาก (นี่คือข้อดีข้อหนึ่งที่ฉันโปรดปราน)

แต่กุญแจสำคัญในการทำความเข้าใจโปรแกรมเหล่านี้คือการรู้ว่าปัญหาที่พวกเขาตั้งใจจะแก้ไขในตอนแรกคืออะไร สำหรับ Vi นี่คือการแก้ไขไฟล์ข้อความผ่านการเชื่อมต่อเทอร์มินัลช้า 300 Baud ในสภาพแวดล้อมนั้นคุณไม่ต้องการแสดงเมนูหรือเปลี่ยนแปลงเนื้อหาของหน้าจออย่างรุนแรงหากคุณสามารถหลีกเลี่ยงได้

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

เห็นได้ชัดว่าความต้องการของผู้คนมีการเปลี่ยนแปลงมากมายตั้งแต่เปิดตัวโปรแกรมเหล่านี้ แต่พวกเขายังมีจุดแข็งที่แท้จริง ฉันได้เรียนรู้พื้นฐานของทั้งสองและใช้พวกเขาเป็นประจำทุกสัปดาห์ ถึงกระนั้นฉันคิดว่าจุดแข็งของพวกเขามักจะคุยโว พวกเขาประสบความสำเร็จในฐานะตำนานที่ผู้คนไม่ยอมรับจุดอ่อนของพวกเขาและมักจะคิดว่าพวกเขากำลังทำอะไรผิดถ้า Emacs / Vi ไม่ได้ทำให้พวกเขามีประสิทธิผลมากกว่า Eclipse หรือ Visual Studio

ตอนนี้ถึงจุด

Java เป็นภาษาที่ได้รับความนิยมพร้อมการสนับสนุนที่ยอดเยี่ยมใน Eclipse และโอกาสที่คุณกำลังพัฒนาโค้ดบนระบบปฏิบัติการที่ทันสมัยที่ช่วยให้คุณทำงานทั่วไปและสคริปต์อื่น ๆ ได้อย่างรวดเร็วโดยไม่ต้องทำผ่าน IDE ของคุณ ฉันไม่คิดว่ามันจะสมเหตุสมผลสำหรับคุณที่จะเปลี่ยน


+1 สำหรับภาษาที่หายากฉันจะเพิ่มภาษาแบบไดนามิกและภาษาที่ยากที่จะแยกวิเคราะห์ยังไม่ได้เปรียบใน emacs มากนัก แต่ IDE ไม่สามารถให้ประโยชน์กับคุณได้มากกว่า emacs
jk

16

ฉันใช้ emacs มานานกว่า 5 ปีแล้ว ฉันไม่สามารถบอกคุณถึงชุดค่าผสมที่สำคัญที่ฉันใช้นิ้วมือของฉันเพียงแค่จดจำพวกเขาและต้องดูที่แป้นพิมพ์เพื่อดูว่ามือของฉันกำลังพิมพ์อะไร

ไม่กี่ปีที่ผ่านมาฉันเริ่มใช้ Eclipse และไม่มีโอกาสที่ฉันจะกลับไปที่ emacs ได้อย่างอิสระ ขออภัยหน่วยความจำกล้ามเนื้อแม้ว่าคุณจะหายไปพวกเจ้าเก่าC-x r SPC 1มาก แต่ Eclipse ทำให้ฉันมีประสิทธิภาพมากขึ้นและนั่นคือสิ่งที่สำคัญ

ไม่ฉันไม่คิดว่าคุณควรเปลี่ยนแต่คุณควรอุทิศเวลาสองสามชั่วโมงเพื่อเรียนรู้พื้นฐานของเสียงเรียกเข้าดังนั้นคุณจึงไม่ต้องค้นหาอีกต่อไป


คุณช่วยอธิบายเกี่ยวกับสิ่งที่คุณสามารถทำได้เร็วกว่าใน Eclipse มากกว่าใน Emacs หรือไม่?
Gordon Gustafson

1
ทุกวันนี้ฉันไม่คิดว่า Eclipse นั้นดีอีกต่อไปแล้ว แต่มันก็ยังเต้นได้นานเมื่อพูดถึงการปรับโครงสร้างและความจริงที่ว่ามันเข้าใจความหมายของภาษาโปรแกรมซึ่งทำให้การค้นหาง่ายขึ้น
Martin Wickman

7

เหตุใดฉันจึงควรเปลี่ยนเป็นกลุ่มหรือ emacs

ส่วนใหญ่ที่คุณไม่ควรสวิทช์ Vim เป็นตัวแก้ไขข้อความที่ยอดเยี่ยมและทรงพลัง แต่มันไม่ได้ใช้แทน IDE และไม่ควรเป็นเช่นนั้น! Eclipse นั้นดีมากในส่วนย่อยของสิ่งเฉพาะของ IDE และ vim นั้นดีมากในส่วนย่อยของสิ่งที่แก้ไขข้อความเฉพาะ แต่ละคนมีโฟกัสแตกต่างกันไป

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

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

ตราบใดที่ emacs ไปฉันไม่มีความเชี่ยวชาญ แต่ฉันไม่คิดว่ามันจะสามารถแข่งขันกับคุณสมบัติ IDE ของ Eclipse เมื่อมันมาถึง Java (โปรดแก้ไขฉันหากฉันผิด) หากคุณกำลังพัฒนาในเสียงกระเพื่อมแน่นอนว่ามันสามารถถือเป็น IDE ที่ยอดเยี่ยมได้ แต่ฉันไม่คิดว่ามันจะรองรับ Java แบบเดียวกัน

ดังนั้นหากคุณต้องการโปรแกรมแก้ไขข้อความที่มีประสิทธิภาพยิ่งขึ้นเพื่อใช้ร่วมกับ Eclipse ฉันขอแนะนำให้คุณเรียนรู้เสียงเรียกเข้าหรือ emacs อย่างแน่นอน แต่เป็นอาหารเสริมไม่ใช่เพื่อทดแทนเป็นอาหารเสริมที่ไม่ได้แทนมันสามารถชำระได้จริงในระยะยาวแม้ว่าพวกเขาจะไม่มีเส้นการเรียนรู้ที่ง่ายโดยเฉพาะ :)

นี่คือlongish ที่ดีอ่านเกี่ยวกับจุดแข็งของเสียงเรียกเข้า และนี่คือรายการของเทคนิคที่ดีที่คุณสามารถทำได้


6

โดยทั่วไปอ่านนี้ (PDF) เพื่อดูว่าทำไม Emacs มีประสิทธิภาพ เมื่อคุณรู้ว่า Lisp มันเป็นเรื่องง่ายมากที่จะเขียนส่วนขยายสำหรับมัน (ฉันมีเวิร์กโฟลว์การควบคุมแหล่งที่มาหลายแห่งและการปรับใช้ที่เขียนสคริปต์ผ่านทางส่วนเสริมที่ฉันเขียนขึ้นเพื่อเรียกตัวเองemployer-mode) เท่าที่คุณเห็นในรายการด้านบน

  • เกิดข้อผิดพลาดในการไฮไลต์โดยไม่จำเป็นต้องคอมไพล์โครงการซ้ำ ไม่สมเหตุสมผลสำหรับทุกภาษา คุณสามารถรวมREPLsหลายภาษาเข้ากับมันได้อย่างง่ายดาย ตอนนี้ผมมีruby, python, haskell, common lisp, schemeและerlangทั้งหมดติดยาเสพติดเข้ามาใน emacs อนึ่ง JavaScript addon js2-modeมี "การรวบรวม" ที่เพิ่มขึ้นอย่างเต็มที่ดังนั้นจึงเน้นสิ่งต่าง ๆ เช่นข้อผิดพลาดทางไวยากรณ์สำหรับคุณดังนั้นจึงเป็นไปได้อย่างแน่นอน แต่ไม่ใช่บรรทัดฐาน
  • รหัสช่วย ฉันเชื่อว่ามีส่วนเสริมที่เรียกautocomplete.elว่าตรวจสอบวิกิ Emacs
  • refactoring ฉันถือว่าคุณหมายถึง "การปรับโครงสร้างอัตโนมัติใหม่" ซึ่งไม่สมเหตุสมผลในทุกภาษา อาจมีอยู่สำหรับบางคน แต่ฉันไม่รู้
  • การเปิดการโทร hiearchy / การประกาศเปิด
  • ครบวงจรด้วยการควบคุมแหล่งที่มา มันมีgit-modeอยู่แล้วภายใน Emacs 22.3 ซึ่งไม่แน่ใจเกี่ยวกับการควบคุมแหล่งอื่น
  • รวมดีบักเกอร์ พื้นฐานภาษาต่อภาษาที่นี่ โดยทั่วไปหากมีการรวม REPL ก็จะมีตัวดีบั๊ก Emacs ด้วย แต่ก็ไม่ได้เป็นสากล
  • ประโยชน์ของปลั๊กอินของบุคคลที่สาม - เช่น findbugs / checkstyle ไม่ทราบเกี่ยวกับสิ่งที่เฉพาะเจาะจงเหล่านั้น แต่มี addons มากมายสำหรับมันจากเหตุผลที่ไม่เป็นเช่นนี้ในแพคเกจพื้นฐานที่มีประโยชน์ไปจนถึงเล็ก ๆ น้อย ๆ อย่างเต็มที่

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


ความต้องการตัวแก้ไข Haskell ที่สะดวกยิ่งขึ้นคือตัวขับเคลื่อนหลักของฉันที่พยายามเรียนรู้ emacs หรือ vim (ฉันชอบ emacs ที่ดีกว่า;)) VS นั้นยอดเยี่ยมสำหรับ C #, F # และอื่น ๆ แต่การขาดบรรณาธิการที่ดีสำหรับภาษาขนาดเล็กที่สุด เป็นเครื่องมืออเนกประสงค์
CodexArcanum

อย่างน้อยที่สุดใน Emacs-land CEDET cedet.sourceforge.net (ชุดเครื่องมือพัฒนาสภาพแวดล้อมของ Emacs) ทำให้เส้นแบ่งระหว่างตัวแก้ไขข้อความและ IDE เป็นจริง นี่คือเป้าหมายหลักที่ C / C ++ (และอื่น ๆ ) และให้สิ่งต่าง ๆ เช่นเบราว์เซอร์โครงการ (และการสร้าง Makefile อัตโนมัติ), การกรอกโค้ด, การช่วยเหลือโค้ด (แสดงต้นแบบของฟังก์ชันที่เคอร์เซอร์), ข้ามไปยังการใช้งาน var / function อัตโนมัติอื่น ๆ ตัวสร้าง gen / destructors และอื่น ๆ มันเป็นความสามารถที่เพิ่มขึ้นอย่างมากของ Emacs ที่อนุญาตให้ใช้เครื่องมือประเภทนี้
Chris

3

ฉันเห็นสองตัวเลือกที่นี่:

  • ใช้ Nano แทน - นี่เหมือนกับ Notepad ใน Windows สำหรับ Linux ไม่ต้องใช้คีย์ลัดใด ๆ เพียงพิมพ์nano somefile.confและคุณมีโปรแกรมแก้ไขที่ดี คุณสามารถเพิ่มการเน้นไวยากรณ์ได้
  • เก็บโปรแกรมไว้ในเครื่องและซิงค์ SCP กับเซิร์ฟเวอร์ - ฉันทำสิ่งนี้เมื่อฉันต้องการทำงานบนเว็บไซต์ขนาดเล็ก แต่ไม่มีทรัพยากรเพียงพอที่จะเรียกใช้ apache ในพื้นที่ ฉันเพียงแค่เปิด WinSCP ขึ้นมานำเสนอไดเรกทอรีที่ฉันต้องการและใช้ "ปรับปรุงไฟล์ระยะไกลให้ทันสมัย" การเปลี่ยนแปลงมักจะสะท้อนให้เห็นในไม่กี่วินาที
  • ใช้ปลั๊กอินในตัวแก้ไข / IDE ของคุณเพื่อทำงาน "โดยตรง" กับไฟล์ระยะไกล - ก่อนที่ฉันจะสนใจการควบคุมการแก้ไขฉันเพียงแค่เปิด Notepad ++ (ตัวแก้ไขที่ฉันชอบ) และใช้ NppFTP เพื่อทำงานกับไฟล์ NppFTP เร็วกว่าตัวเลือก WinSCP เนื่องจาก Npp บอกได้ทันทีเมื่อไฟล์ถูกบันทึกซึ่งจะถูกอัพโหลดทันที อย่างไรก็ตามอย่างที่ฉันบอกคุณควบคุมการแก้ไขหลวม ฉันแน่ใจว่ามีปลั๊กอินสำหรับ Eclipse ที่คุณสามารถใช้ได้

หวังว่านี่จะช่วยได้


+1 สำหรับนาโนต้องรักมัน
Dashogun

+1 นาโนยอดเยี่ยม ถ้าฉันเท่านั้นที่รู้เรื่องนี้มาก่อนความเจ็บปวดโดยไม่รู้จบโดยใช้ vi
Oliver Weiler

2

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

แต่ฉันต้องการ Eclipse สำหรับการพัฒนา Java ขนาดใหญ่เนื่องจากคุณสมบัติมากมายที่พร้อมใช้งาน แน่นอนว่ามีปลั๊กอินบางอย่างที่ทำให้ Eclipse มีความทนทานมากขึ้น


1

หากคุณพอใจกับ Eclipse แล้วอย่าเปลี่ยน

หากคุณสามารถใช้ Eclipse ได้ทุกที่ที่คุณต้องการอย่าสลับ

หากโครงการ / บริษัท ของคุณใช้ Eclipse โดยเฉพาะอย่าสลับไปใช้

หากคุณไม่ต้องการสิ่งอื่นเพียงอย่างเดียวให้พิมพ์cheat-sheetสำหรับหนึ่งในบรรณาธิการและดึงมันออกมาจากลิ้นชักเมื่อคุณต้องการจากนั้นกลับไปใช้ Eclipse

ดูคำถาม (เดียวกัน) ที่ SO: https://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-eclipse

เท่าที่ตอบคำถาม "คนที่ใช้งานจริงทำงานในโครงการเชิงวัตถุที่ซับซ้อนในองค์กรขนาดใหญ่หรือไม่" - ถือหมวกซันนี่ของคุณ แต่คำตอบคือ "ใช่" ฉันได้ทำงานในโครงการที่มีโค้ดหลายสิบล้านบรรทัดที่ใช้ในเส้นทางที่สำคัญของการออกแบบ CPU ที่ใช้งานคอมพิวเตอร์ที่คุณใช้ถามคำถามนี้ และผู้คนทดลองใช้ Eclipse แต่พบว่าช้าเกินไปและไม่น่าดู (แม้ว่าเป็นที่ยอมรับว่าเราไม่ได้ใช้ Java)


1

ทั้ง emacs และ vim เป็นตัวแก้ไขที่สามารถกำหนดค่าได้และทรงพลังมาก

Vi ชนะด้วยสิ่งที่เป็นพื้นฐานการดำเนินการตั้งค่า ตัวอย่างเช่นการเปลี่ยนอินสแตนซ์ทั้งหมดของ "foo" เป็น "bar" ในคำจำกัดความของคลาสเป็นหนึ่งซับ

Emacs นั้นทรงพลังเท่า ๆ กัน แต่คุณต้องเรียนรู้ Emacs Lisp เพื่อใช้มันให้เต็มศักยภาพ

ในทั้งสองกรณีเป็นเพียงมูลค่าสลับถ้าคุณวางแผนที่จะ emacs หรือ vi สำหรับทุกอย่าง


1

เครื่องมือที่ดีที่สุด (ในระยะสั้น) คือเครื่องมือที่คุณมีความเชี่ยวชาญสูง

ผู้คนใช้เทคโนโลยี 30 ปีขึ้นไปเพราะพวกเขามีความเชี่ยวชาญสูง พวกเขาสร้างกระบวนการทำงานและนิสัยรอบ ๆ เครื่องมือเหล่านี้ หากคุณคุ้นเคยกับ IDE ยุคใหม่อย่าง Eclipse ก็ไม่มีเหตุผลอะไรที่จะต้องเปลี่ยน การเรียนรู้วิธีใช้ Eclipse อย่างมีประสิทธิภาพมากขึ้นเป็นการลงทุนที่คุ้มค่ากับเวลาของคุณ (เช่นใช้Mylyn )


1

ฉันกำลังพยายามเปลี่ยนจาก NetBeans เป็นกลุ่ม การเรียนรู้เป็นกลุ่มต้องใช้เวลาและการฝึกฝน แต่ฉันเห็นข้อดีของมันมากกว่าเรียกว่า "เครื่องมือแก้ไข GUI" สำหรับบางกรณี

แต่ต่างจากคุณฉันเขียนรหัสทับทิมเป็นส่วนใหญ่และฉันไม่ต้องการการสร้างโค้ดการเติมข้อมูลอัตโนมัติเวทมนต์ refactor-my-code ดำที่ NetBeans และ Eclipse เสนอ ถ้าฉันเข้ารหัส Java หรือ C # แน่นอนที่สุดฉันจะไม่พยายามเปลี่ยนเลย


ฉันใช้เสียงเรียกเข้ามาหลายปี มันทำงานได้ดีมากกับ Ruby และเมื่อคุณได้รับช่วงการเรียนรู้ที่คุณจะต้องการประสิทธิภาพ
Larry Coleman

1

ในฐานะผู้ใช้ emacs มาเป็นเวลานานฉันพบว่า emacs ค่อนข้างสบายใจในฐานะที่เป็นสภาพแวดล้อมการแก้ไขและการพัฒนา (และในระดับหนึ่งมันยังทำงานร่วมกับกระบวนการสร้างการควบคุมเวอร์ชันการค้นหาบริบทที่ไวต่อสิ่งอื่น ๆ มันเป็น "IDE")

ฉันรู้สึกสะดวกสบายกับการใช้ตัวแก้ไขแบบ vi และ vi (ฉันเริ่มใช้ ed เพราะฉันคิดว่า emacs นั้นซับซ้อนเกินไปในการหวนกลับที่ย้อนหลัง แต่มันทำให้ฉันมีรากฐานที่มั่นคงสำหรับการเรียนรู้ในอนาคตของ vi) ฉันใช้ vi เป็นหลักสำหรับ "การแก้ไขด่วนขนาดเล็ก" โดยส่วนใหญ่จะอยู่บนเครื่องระยะไกลที่ไม่ได้ติดตั้ง emacs

สำหรับเหตุการณ์ "ฉันทำในบางครั้งคุณจำเป็นต้อง ssh เข้าสู่เซิร์ฟเวอร์และยุ่งกับไฟล์ config สำหรับสถานการณ์นี้ฉันใช้ vi" ฉันจะแนะนำชุดคำสั่งขนาดเล็กและความคิดทั่วไปรอบ ๆ vi:

  • Vi ไม่ใช่คำกริยามันมี "a" (ผนวก), "A" (ผนวกท้ายบรรทัด), "i" (แทรก) และคำสั่ง "I" (แทรกที่จุดเริ่มต้นบรรทัด) ทำให้ข้อความแทรก เป็นอาร์กิวเมนต์และการส่งสัญญาณ "end-of-command" กับ Esc
  • h, j, k และ l เป็นปุ่มเคลื่อนไหว มันอาจทำงานโดยใช้ปุ่มลูกศร แต่ตามลำดับ VT "สไตล์ฉันเป็นปุ่มลูกศร" โดยทั่วไปเริ่มต้นด้วย Esc สิ่งนี้จะทำให้คำสั่งการแทรกข้อความที่คุณไม่ได้คิด
  • : linenumย้ายคุณไปยังเส้นlinenumบรรทัดที่ 1 คือบรรทัดที่สูงที่สุดและบรรทัด $ คือบรรทัดล่างสุด
  • . คือคำสั่ง "ทำซ้ำคำสั่งสุดท้าย" (ดูหัวข้อย่อยแรก)

ไม่ควรใช้เวลามากกว่าหนึ่งหรือสองชั่วโมงในการเล่นกับ vi เพื่อให้อยู่ที่ "ฉันสามารถแก้ไขไฟล์ข้อความได้อย่างมั่นใจ แต่ฉันอาจไม่มีประสิทธิภาพกับมัน" และนั่นก็เป็นสิ่งที่ดีเท่าที่คุณอาจจะต้องเป็น . หากไม่มีตัวแก้ไขใด ๆ ที่ไม่พอใจในการแปลงอัตโนมัติระหว่างแท็บและช่องว่างควร "ดีพอ" สำหรับวัตถุประสงค์ของคุณ หากติดตั้ง Eclipse บนเซิร์ฟเวอร์ระยะไกลทั้งหมดของคุณฉันไม่เห็นว่าการใช้นั้นเป็นปัญหาใหญ่จริงๆ


ทำไมต้องโหวต
Vatine

1

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

นอกจากว่าฉันกำลังเขียน Java หรือ C # (และฉันคิดว่ามีภาษาอื่นในหมวดหมู่นี้) พวกเขามีห้องสมุดขนาดใหญ่ดังกล่าวของสิ่งที่มีชื่อยาวว่ากำไรที่ฉันได้รับจากการใช้ Emacs จะหายไปอย่างสมบูรณ์ในการพยายามที่จะจำทุกอย่าง

แน่นอนฉันขอแนะนำให้คุณลองเป็นกลุ่มและ / หรือ Emacs แต่คุณน่าจะกลับมาใช้งานอีกครั้งใน Eclipse สำหรับ Java


0

ฉันไม่มีปัญหากับเครื่องมือแก้ไข UNIX ต่างๆที่มี แต่ฉันเคยใช้มันในการประท้วง ไม่อย่างที่ฉันพูดเพราะฉันมีปัญหากับพวกเขา แต่เพราะถ้าฉันต้องใช้มันก็หมายความว่ากระบวนการปรับใช้ของเรานั้นขาดไป

สิ่งนี้อาจสมควรได้รับบริบทเพิ่มเติมอีกเล็กน้อย: ฉันทำงานกับโซลูชันอีคอมเมิร์ซขนาดใหญ่ทุกอย่างที่ควบคุมการทำงานของระบบของเรานั้นสร้างขึ้นโดยกระบวนการสร้าง / ปรับใช้ด้วยคลิกเดียว เรามีสภาพแวดล้อมการทดสอบที่หลากหลายดังนั้นเมื่อใดก็ตามที่ฉันสามารถทำการเปลี่ยนแปลงผ่าน Eclipse ให้ตรวจสอบมันเป็น cvs และทริกเกอร์การสร้าง / ปรับใช้เพื่อพิสูจน์ว่าการแก้ไขของฉันทำงานได้ดี ดังนั้นถ้าฉันแฮ็คใน 'vi' นั่นเป็นเพราะเราไม่สามารถรอการตอบสนองการปรับใช้ 1 ชั่วโมงหรือเนื่องจากการปรับใช้ไม่ครอบคลุมไฟล์ที่ฉันกำลังแก้ไขและจำเป็นต้องขยายให้ทำ ดังนั้น (มิฉะนั้นฉันจะแฮ็คที่ vi ในครั้งต่อไปที่ไฟล์ที่เป็นปัญหาต้องเปลี่ยน)


0

โดยส่วนตัวแล้วทั้งสองโปรแกรมผลักฉันขึ้นกำแพง ปัญหาของ Eclipse นั้นช้ามากเมื่อคุณทำงานในโครงการขนาดใหญ่และนั่นคือเมื่อมันไม่ได้ทำ 'DGLP Indexing' หรืออะไรก็ตาม ต้องการรีเฟรชพื้นที่เก็บข้อมูลของคุณ? ได้ 15 นาที โอ้และวิธีการเกี่ยวกับเคล็ดลับที่ดีที่คุณ Ctrl-C ข้อความบางส่วนแล้ว Ctrl-P มันอยู่ที่ไหนสักแห่ง แต่แทนที่จะไปที่คุณต้องการให้มันเปิดไฟล์ที่แตกต่างกันอย่างสมบูรณ์และวางเหนือสิ่งอื่นและคุณเหลือสงสัย wtf อยู่ที่นั่น ในที่แรก. โอ้และฉันพูดถึงการทำงานกับ eclipse ในโครงการขนาดใหญ่ผ่าน VPN หรือไม่? เป็นไปไม่ได้ในทางปฏิบัติ

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

สิ่งที่ฉันต้องการคือใครบางคนจะเขียนโปรแกรมบรรทัดคำสั่งเช่น vim ที่จริงมีโครงสร้างไดเรกทอรีเช่น eclipse ด้านข้างหรือสิ่งที่คุณสามารถขยาย / ยุบและเปิดไฟล์จาก ไม่มีใครรู้อะไรแบบนี้?


3
คุณเพียงแค่เปิดไดเรกทอรีในบัฟเฟอร์และมันจะแสดงรายการไฟล์ในไดเรกทอรี เลื่อนเคอร์เซอร์ไปที่ไฟล์ที่คุณต้องการแก้ไขกดปุ่ม return และจะเปิดไฟล์นั้น ปลั๊กอินเสียงเรียกเข้าที่หลากหลาย (เช่น NerdTree) มีคุณสมบัติที่ซับซ้อนมากขึ้นเช่นการแยกหน้าต่างโดยอัตโนมัติเปิดไฟล์ในบานหน้าต่างเดียวและเก็บแผนผังไดเรกทอรีไว้ที่อื่น ปัญหาทั่วไปเกี่ยวกับเสียงเรียกเข้าและ emacs ไม่ใช่ว่ามันขาดคุณสมบัติ แต่ก็ไม่สามารถค้นพบคุณสมบัติได้โดยการเรียกดูเมนูคุณต้องอ่านเอกสารวิธีใช้
Charles E. Grant

ส่วนสุดท้ายของคำตอบของคุณควรเป็นอีกคำถามหนึ่ง
Matthieu

เมื่อคุณใช้งานที่ "ไร้สติ" เพื่ออธิบายชุดค่าผสมที่สำคัญคุณจะออกมาเป็นมือสมัครเล่น ต้นไม้ nerd ก็ทำสิ่งที่คุณกำลังอธิบายเมื่อเสียบเข้ากับกลุ่ม
Arunav Sanyal

-1

หากคุณไม่พอใจกับ VIM หรือ EMACS คุณสามารถดูที่เครื่องแก้ไขข้อความอื่น ๆ อาจมีบางรสชาติของ nedit หรือ gedit หรือ somesuch ที่คุณสามารถใช้ซึ่งจะมีคำสั่งที่คุ้นเคยมากขึ้น (ctrl x, c, v และ s ทำสิ่งที่คุณคาดหวังเช่น)

คุณอาจมีตัวเลือกมากกว่าสองตัวเลือกใน distro ของคุณมันคุ้มค่าที่จะดู

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