ฉันกำลังพิจารณาว่าฉันควรเริ่มใช้ VIM อีกครั้งแทนที่จะเป็น IDE หรือไม่ ฟีเจอร์ที่มีประโยชน์ที่สุดของ VIM ที่ไม่ได้มาตรฐานใน IDE คืออะไร
emacs
แทน ;-)
ฉันกำลังพิจารณาว่าฉันควรเริ่มใช้ VIM อีกครั้งแทนที่จะเป็น IDE หรือไม่ ฟีเจอร์ที่มีประโยชน์ที่สุดของ VIM ที่ไม่ได้มาตรฐานใน IDE คืออะไร
emacs
แทน ;-)
คำตอบ:
ฉันไม่คิดว่ามันเป็นคุณสมบัติขั้นสูงของ VIM ที่ทำให้มีประสิทธิภาพ ความจริงที่ว่าคุณไม่จำเป็นต้องละมือออกจากคีย์บอร์ดเพื่อทำอะไรเลย การค้นหาบางสิ่งในไฟล์ขนาดใหญ่นั้นง่ายพอ ๆ กับการกดแป้นสองครั้ง การเปิดและปิดไฟล์หลายไฟล์ในหน้าต่างเดียวกันนั้นทำได้อย่างรวดเร็วเช่นกัน
แม้ว่ามันอาจดูไม่ง่ายในตอนแรก แต่มันก็คุ้มค่ากับเวลาของคุณ แม้ว่าคุณจะไม่ได้ใช้มันเป็น IDE มาตรฐานของคุณ (โดยทั่วไปฉันใช้ Visual Studio หรือ Eclipse เป็นต้น) คุณจะพบว่าตัวเองใช้ VIM เพื่อเปิดและแก้ไขไฟล์อย่างรวดเร็วเพราะมันกลายเป็นวิธีที่เร็วกว่ารอ IDE ภาระ
ลงทุนเวลาเพื่อเรียนรู้วิธีใช้ VIM อย่างดีและคุณจะไม่มีวันเสียใจ ฉันว่ามันเปรียบได้กับการเรียนรู้ที่จะสัมผัส
สำหรับฉัน:global
คำสั่งคือแอพนักฆ่า มันจะรันคำสั่งเป็นกลุ่มโดยพลการในบรรทัดใด ๆ ที่ตรงกับ (หรือไม่ตรงกับ) regex
นี่คือตัวอย่างบางส่วน:
พฤติกรรมเริ่มต้นคือการแสดงรายการทุกบรรทัดที่ตรงกับ:
:g/TODO:/
จะแสดงรายการทุกบรรทัดที่มีข้อความ "TODO:"
เปลี่ยน 'มิกกี้' เป็น 'มินนี่' ในทุกบรรทัดที่มีคำว่า 'เมาส์'
:g/Mouse/ s/Mickey/Minnie/
คำสั่งสามารถมีช่วงของตัวเองดังนั้นสิ่งนี้จะลบออกจากทุกบรรทัดด้วย "TODO:" ไปยังบรรทัดว่างถัดไป:
: g / TODO: /., / ^ $ / d
ใช้: g! เพื่อดำเนินการในทุกบรรทัดที่ไม่ตรงกับ regex เช่นแทนที่ "emacs" ด้วย "vim" ยกเว้นในบรรทัดที่มีคำว่า "sucks":
:g!/sucks/ s/emacs/vim/
ฉันพบว่าความสามารถในการลบทุกสิ่งทุกอย่างระหว่างชุดสัญลักษณ์ที่จับคู่มีประโยชน์อย่างเหลือเชื่อ ตัวอย่างเช่นค่อนข้างบ่อยฉันจะพบว่าตัวเองต้องการแทนที่สตริงในรหัส ดังนั้นdi"
ในขณะที่เคอร์เซอร์อยู่ในบล็อกจะลบสตริงในขณะที่การรักษา""
เหมือนเดิมและวางเคอร์เซอร์ในระหว่างตัวละครทั้งสองอ้าง da"
ทำสิ่งเดียวกัน แต่ลบอักขระเครื่องหมายคำพูดด้วย
ci"
ลบและวางเคอร์เซอร์ในโหมดแทรกเพื่อให้คุณสามารถเริ่มเขียนได้ทันที
'การเติมคำหลักในโหมดแทรกเสร็จสมบูรณ์' Ctrl-P และ Ctrl-N ในโหมดแทรกเพื่อค้นหาข้อความเพื่อลองและเติมชื่อตัวแปรที่คุณกำลังพิมพ์ ฉันไม่เคยเห็นสิ่งนี้ใน IDE อื่น ๆ และฉันคิดถึงมันมาก การเติมโค้ดใน IDE นั้นไม่เหมือนกัน
^X^O
omni เสร็จสมบูรณ์ในโหมดแทรกหากคุณเปิดใช้งาน แต่คุณพูดถูกฉันพบว่าตัวเองใช้การใช้คำหลักให้สำเร็จมากกว่าคำว่าสมบูรณ์
คุณสมบัติอื่นที่ฉันพบว่ามีประโยชน์อย่างไม่น่าเชื่อคือความสามารถในการเปลี่ยนการเยื้อง :15,30>>
เยื้องทุกบรรทัดจาก 15-30 (รวม) สองครั้งในขณะที่:15,30<<
การเยื้องบรรทัดเดียวกันสองครั้ง
=
จะเป็นเช่นเดียวกับถ้าไม่มากที่มีประโยชน์กว่าและ<<
>>
คำสั่ง dd (ลบบรรทัดปัจจุบัน) ฉันใช้อันนี้มาก
นอกจากนี้ความสามารถในการพิมพ์บางอย่างเช่น 3dd และลบ 3 บรรทัดถัดไปนั้นยอดเยี่ยม ฉันไม่เคยเห็นสิ่งนี้ในเครื่องมือแก้ไขอื่น = D
c
คำสั่ง ตัวอย่างเช่นหากci"
ต้องการเปลี่ยนเครื่องหมายคำพูด cw
เพื่อเปลี่ยนคำ เทคนิคที่มีประโยชน์มากมายกับมัน
.
คำสั่ง มันซ้ำคำสั่งสุดท้าย
Esc ! }
จะเลื่อนย่อหน้าปัจจุบันออกไปที่ตัวกรองบรรทัดคำสั่งเช่นfmt
หรือwc
หรือwhich
และส่งคืนผลลัพธ์ไปยังบรรณาธิการ
เข้าถึงคำสั่งอย่างรวดเร็ว CTRL + Z หรือ: wqa จะทำให้ฉันมีบรรทัดคำสั่งในเวลาน้อยกว่า 1 วินาทีโดยไม่ต้องออกจากแป้นพิมพ์
:!/bin/bash
หรือ ฉันใช้:!
ค่อนข้างบ่อย
:sh
ที่ฉันสามารถใช้hjkl
เพื่อเลื่อนเคอร์เซอร์โดยไม่ต้องออกจาก homerow ของแป้นพิมพ์ ฉันมีโปรแกรมส่วนใหญ่ (เช่นโปรแกรมอ่าน PDF) ซึ่งให้คุณเปลี่ยนการโยงคีย์ตั้งค่าให้ใช้ปุ่มการเคลื่อนไหว Vim สำหรับการเลื่อนและอื่น ๆ
นี่เป็นคำตอบที่ค่อนข้างยากเนื่องจากค่อนข้างคลุมเครือของคำถามและค่อนข้างที่ความจริงที่ว่า IDE นั้นแตกต่างกันและมีคุณสมบัติหลายอย่างที่คนอื่นทำไม่ได้ (และความจริงที่ว่าฉันมีไม่กี่คน)
อย่างไรก็ตามสิ่งที่ฉันเชื่อว่า Vim แตกต่างจากบรรณาธิการอื่น ๆ (ใช่แม้แต่ Emacs ในอันนี้) คือมันเป็นตัวแก้ไขที่ยอดเยี่ยมจริงๆบรรณาธิการฉันใช้เวลาไปกับบรรณาธิการหลายคนและพูดได้อย่างตรงไปตรงมาว่ามีน้อยมากที่มีฟีเจอร์ครบชุดสำหรับจัดการข้อความเช่น Vim
สไตล์ของฉันในการจัดการข้อความตัวอย่างรวมถึงการใช้การทำซ้ำ (บรรทัด / การเลือกหลายบรรทัด) บ่อยครั้งและการย้าย (บรรทัด / การเลือกหลายบรรทัด) ขึ้นและลงซึ่งฉันได้กำหนดทางลัดด่วนมานานแล้ว ฉันคิดถึงคุณสมบัติเหล่านั้นใน IDE ส่วนใหญ่ (แม้ว่าฉันเคยได้ยิน ReSharper สำหรับ VS มีบางอย่างที่คล้ายกัน)
คุณทราบหรือไม่ว่ามีความเป็นvi ปลั๊กอินสำหรับคราส ? มีค่าใช้จ่าย 15 ยูโร (20ish US $) แต่มันก็เป็นเพื่อให้คุ้มค่า ไม่ต้องdd
อยู่กลางเอกสารอีกต่อไปและขาดสิ่งเล็ก ๆ ที่มีประโยชน์ทั้งหมด
อาจจะเป็นหัวข้อเล็กน้อย แต่ฉันคิดว่ามันคุ้มค่าที่จะชี้ให้เห็น
ขึ้นอยู่กับภาษาที่คุณใช้ในการเขียนโปรแกรมติดกับ IDE หรือรับ IDE ที่มีการรีแฟคเตอร์มากที่สุดที่คุณสามารถหารับ resharper สำหรับ Visual Studio หากคุณกำลังทำ c #, intellij สำหรับ java หรือ visual assist สำหรับ visual studio กำหนดค่าการรีแฟคเตอร์ได้สูงสุดใน eclipse หรือ netbeans
เราควรจะย้ายจากการจัดการข้อความเพื่อจัดการกับรหัสเครื่องมือ refactoring ให้ความสามารถนั้น ถ้าเป็นกลุ่มให้คุณสมบัติทั้งหมดดีฉันหนึ่งไม่ต้องการจัดการกับตัวแก้ไขข้อความอีกต่อไป
เลือกคอลัมน์ตาราง
สิ่งนี้ดูเหมือนจะไม่อยู่ใน IDEs ที่ได้รับความนิยมและหากเป็นเช่นนั้นมันก็ยังคงซ่อนอยู่อย่างดี สิ่งนี้มีประโยชน์มากสำหรับการทดสอบ regex กับคอลัมน์ในไฟล์ข้อมูล CSV
IDEs ส่วนใหญ่ไม่อนุญาตให้คุณแบ่งหน้าจอ ฉันชอบฟีเจอร์นั้นใน VIM
<C-w>