Vi & Vim

คำถามและคำตอบสำหรับผู้ที่ใช้ตระกูล vi และ Vim ของเครื่องมือแก้ไขข้อความ

5
วิธีแตกต่างและรวมสองไดเรกทอรี
ฉันรู้ว่าโหมด diff ของ Vim ( vimdiff) ช่วยให้เราสามารถเปรียบเทียบเนื้อหาของไฟล์สองไฟล์ (หรือมากกว่า) แต่มันเป็นไปได้ที่จะเปรียบเทียบเนื้อหาของหลาย ๆ ไฟล์ข้ามไดเรกทอรีเพื่อรวมสองไดเรกทอรีซ้ำ (เช่น DiffMerge และเครื่องมือที่คล้ายกัน)?

5
ฉันจะสร้างรายการหมายเลขต่อเนื่องหนึ่งรายการต่อบรรทัดได้อย่างไร
เริ่มต้นจากกระดานชนวนว่างเปล่าฉันจะขอรับเอกสารที่มีได้อย่างไร 1 2 3 4 5 6 7 8 9 10 … 100 เพื่อความชัดเจนฉันไม่ต้องการให้ตัวเลขเหล่านี้แสดงในระยะขอบ ฉันต้องการให้พวกเขาแทรกลงในเอกสารของตัวเอง

2
ฉันจะดูและแก้ไขการบันทึกของฉัน (เช่นมาโครที่บันทึกไว้) ได้อย่างไร
ฉันใช้ซ้ำที่ซับซ้อนในการบันทึกการดำเนินงานของฉัน ( qqเพื่อบันทึกการดำเนินการบาง , qการหยุด) และฉันไม่ผิดพลาด เป็นไปได้ไหมที่จะเห็นสิ่งที่ฉันบันทึกและแก้ไขข้อผิดพลาดแทนที่จะทำอีกครั้ง? เรียกใช้ตัวละครที่บันทึกไว้ตาม@qผลงาน แต่ฉันไม่เห็นในการแม็พ ( :map q- No mapping found) :help recordingและมีข้อมูลไม่มากในการช่วยเหลือโดยการพิมพ์:

6
ฉันสามารถปรับข้อความเป็นกลุ่มได้หรือไม่
เหตุผลเดียวที่ฉันเคยแก้ไขไฟล์ข้อความใน Pico ^Jหรือนาโนและไม่อยู่ในกลุ่มที่เป็นคำสั่ง มันจะฟอร์แมตข้อความหนึ่งย่อหน้าโดยสร้างตัวแบ่งบรรทัดที่ตัวแบ่งคำเพื่อให้ข้อความลอยบนหน้าจอความกว้างคงที่ - จัดรูปแบบข้อความให้พอดีกับ 80 คอลัมน์ที่กำหนดไว้ล่วงหน้าสร้างการแบ่งบรรทัดระหว่างคำเท่านั้น ฟังก์ชั่นที่ จำกัด นั้นมีประโยชน์มากไม่ว่าจะจัดรูปแบบบล็อกความคิดเห็นที่มีความยาวไฟล์เอกสารหรือเพียงแค่แทนที่พารามิเตอร์บรรทัดที่ไม่มีที่สิ้นสุดด้วยสิ่งที่อ่านง่ายขึ้น ฉันสามารถทำสิ่งนี้ใน Vim ได้ไหม?

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

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

5
ตรวจจับระบบปฏิบัติการใน Vimscript
ฉันสามารถดึงระบบปฏิบัติการปัจจุบัน (Windows, Linux, OS X, .. ) โดยใช้pure Vimscript (ไม่มี Python หรือ Perl) ได้หรือไม่? ฉันต้องการเปิดใช้งานการตั้งค่าที่แตกต่างกันใน (ซิงโครไนซ์) .vimrcสำหรับระบบปฏิบัติการประเภทต่างๆที่ฉันใช้อยู่
37 vimscript 

5
วิธีการทำแผนที่ปุ่ม Alt?
ฉันพยายามแมปAltรหัสด้วยวิธีต่อไปนี้: :map <A-j> j :map <A-k> k แต่มันไม่ทำงาน (เบลล์ดังขึ้นAlt + j/ Alt + k) สิ่งที่ฉันหายไป? ฉันใช้ Terminal บน OSX สิ่งเดียวกันนี้เกิดขึ้นกับ Linux ระยะไกล เมื่อวันที่Ctrl + v, Alt + jฉันมี: ?~H~F( ∆เมื่อencoding=utf-8) เมื่อวันที่Ctrl + v, Alt + kฉันมี: ?~Z( ˚เมื่อencoding=utf-8) การใช้เสียงเรียกเข้าที่ไม่มีปลั๊กอิน ( -u NONE) ไม่ได้สร้างความแตกต่างเลย


2
<Leader> คืออะไร
ฉันเห็น&lt;Leader&gt;ค่อนข้างบ่อยในไฟล์ vimrc ของผู้อื่น แบบนี้ มันคืออะไร? มันทำอะไร?

1
อะไรคือความแตกต่างระหว่าง autoindent และ smartindent ใน vimrc?
ฉันอ่านรายการ wiki บนเยื้องซอร์สโค้ด vim ฉันยังไม่เข้าใจความแตกต่างระหว่างautoindentและsmartindent enterดูเหมือนว่าพวกเขาทำสิ่งเดียวกันคัดลอกระดับเยื้องไปยังบรรทัดถัดเมื่อคุณกด

1
โหมดเลือกคืออะไรและเมื่อไหร่ที่เกี่ยวข้องกับการใช้งาน?
ฉันตั้งใจกดghในโหมดปกติและเริ่มการเลือกดังนั้นฉันเงยหน้าขึ้นมอง doc :h Select-modeและพบว่า จากสิ่งที่ฉันเข้าใจโหมดเลือกอยู่ใกล้กับโหมดภาพยกเว้นว่า: การพิมพ์อักขระที่พิมพ์ได้&lt;CR&gt;หรือ&lt;BS&gt;จะลบการเลือกเริ่มต้นโหมดแทรกและแทนที่การเลือกด้วยอินพุต hjkl และการเคลื่อนไหวโหมดปกติหรือโหมดภาพอื่น ๆ จะไม่ขยายการเลือกเว้นแต่ว่าจะนำหน้าด้วย &lt;Shift&gt; &lt;CTRL-O&gt;และ&lt;CTRL-G&gt;จะเปลี่ยนเป็นโหมดภาพ หมอบอกว่าสิ่งต่อไปนี้ซึ่งถ้าฉันเข้าใจถูกต้องหมายความว่ามันเป็นไปได้ที่จะทำการเลือก linewise ซึ่งจะได้รับการปฏิบัติตามตัวอักษร: เมื่อใช้โอเปอเรเตอร์ในโหมดเลือกและการเลือกเป็น linewise บรรทัดที่เลือกจะถูกดำเนินการตาม แต่เหมือนในการเลือกตามตัวอักษร ตัวอย่างเช่นเมื่อลบทั้งบรรทัดจะสามารถวางในภายหลังได้ครึ่งบรรทัด ฉันสับสนเล็กน้อยเพราะฉันไม่เข้าใจว่าทำไมโหมดนี้จึงถูกสร้างขึ้น: ทั้งหมดที่ฉันเห็นคือมันสะดวกกว่าโหมดภาพเล็กน้อยและไม่มีคุณสมบัติเพิ่มเติม นอกจากนี้การค้นหาที่ฉันทำทั้งหมดให้ผลลัพธ์เกี่ยวกับการเลือกในโหมดภาพ แต่ไม่ถือว่าโหมดการเลือก ดังนั้นคำถามของฉันคือ: เหตุใดจึงสร้างโหมดเลือก สิ่งที่เป็นข้อได้เปรียบเมื่อเทียบกับโหมดภาพ? กรณีการใช้งานที่น่าสนใจมากขึ้นที่จะใช้โหมดเลือกคืออะไร? MetaNoteฉันไม่มีความคิดว่าแท็กใดที่เกี่ยวข้องกับคำถามนี้อย่าลังเลที่จะทดสอบซ้ำหากจำเป็น

1
ดูจุดรหัส Unicode ของตัวละครปัจจุบัน
ฉันจะดูจุดโค้ด Unicode ของอักขระที่เคอร์เซอร์อยู่ได้อย่างไร ตัวอย่างเช่นถ้าเคอร์เซอร์ของฉันอยู่บน⌘ตัวฉันต้องการเป็นกลุ่มที่จะบอกฉันว่ามันเป็นU + 2318 ข้อมูลทางเลือกเช่นการเป็นตัวแทนพื้นฐาน 10 (8984) หรือการเป็นตัวแทน UTF-8 (E2 8C 98) จะเป็นที่ยอมรับ ฉันถามเกี่ยวกับ Unicode และ UTF-8 เพราะมันเป็นเรื่องธรรมดา แต่ถ้าคำตอบทั่วไปกับชุดอักขระและการเข้ารหัสอื่น ๆ มันก็เป็นการดีที่จะรู้เช่นกัน

1
ฉันจะใช้คำสั่ง undofile ได้อย่างไร
รายการข่าวล่าสุดในvim.orgพูดถึงการใช้ 'เลิกทำ' เพื่อบันทึกประวัติของคุณและยกเลิกการเปลี่ยนแปลงแม้หลังจากรีบูต: ผู้ใช้หลายคนไม่รู้จักคุณสมบัติที่ฉันชอบโดยใช้ตัวเองเนื่องจากฉันพบเมื่อสัปดาห์ที่แล้ว นอกเหนือจากการเลิกทำในหลาย ๆ ระดับตามที่คุณต้องการ Vim ยังมีการจัดเก็บข้อมูลการเลิกทำในไฟล์ ดังนั้นคุณสามารถออกจาก Vim รีบูตเครื่องคอมพิวเตอร์และยกเลิกการเปลี่ยนแปลงที่คุณทำไว้ ดูความช่วยเหลือสำหรับ 'undofile' (Bram Moolenaar) ฉันจะเปิดใช้งานและใช้คุณสมบัตินี้ได้อย่างไร?

5
การค้นหาเสียงเรียกเข้าแทนที่ไฟล์ทั้งหมดในโฟลเดอร์ปัจจุบัน (โครงการ)
หนึ่งในคำถามเปิดที่ฉันมีเกี่ยวกับ Vim คือถ้ามีวิธีทำการค้นหา / แทนที่ในโครงการปัจจุบัน (อดทนกับฉันหากฉันใช้ความคิดนี้ที่สืบทอดมาจากบรรณาธิการอื่น ๆ ) ตัวอย่างเช่นสมมติว่าฉันต้องการค้นหาชื่อไฟล์โครงการของฉันและเปลี่ยนชื่ออินสแตนซ์ทั้งหมดของการเรียกใช้เมธอดนั้น นี่คือวิธีที่ฉันสามารถดำเนินการกับประเสริฐ วิธีที่คุณจะทำเช่นนี้ในกลุ่ม (อาจ MacVim) โดยไม่ต้องอาศัยโปรแกรมอื่น ๆ เช่นackหรือsed?
36 search  macvim 

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