คำสั่งสำหรับ "เลือกทั้งหมด" ใน vim และ VsVim คืออะไร


26

ฉันจะเลือกเนื้อหาทั้งหมดของไฟล์ใน Vim และ VsVim ได้อย่างไร เช่นเดียวกับในบรรณาธิการอื่น ๆctrl+Aทำงานเพื่อเลือกทั้งหมด


3
คำตอบของ SibiCoder นั้นดี แต่มันจะมีประโยชน์หากคุณรู้ว่าคุณตั้งใจจะทำอะไรกับเนื้อหาที่คุณคัดลอก
กฎหมาย

5
ก่อนอื่นคุณ "เลือก" ข้อความบางส่วนใน "บัฟเฟอร์" ไม่ใช่ใน "ไฟล์" สอง "การเลือก" มักจะไร้ประโยชน์ใน Vim ดังนั้นคุณต้องชัดเจนเกี่ยวกับสิ่งที่คุณต้องการจะทำกับ "การเลือก" นั้น สำหรับคุณและสำหรับเรา
romainl

3
@ อย่างแน่นอนฉันคิดว่า OP หมายถึงการเลือกไฟล์ทั้งหมดในโหมดภาพโดยพิจารณาว่าctrl+aในโปรแกรมแก้ไขอื่น ๆ จะเน้นที่ไฟล์ทั้งหมด
EvergreenTree

@statox ทำไมคุณถึงแก้ไขvsvim out? มันไม่ใช่เรื่องใหญ่สำหรับฉัน แต่ฉันคิดว่าแท็กนั้นเหมาะสมอย่างยิ่งและฉันไม่ต้องการเข้าร่วมสงครามแก้ไข (ฉันจะ pinged คุณใน:chat!แต่คุณไม่ได้อยู่ในห้องนั้นเมื่อเร็ว ๆ นี้ดังนั้นมันจะไม่ยอมให้ฉัน)
James

@DJMcMayhem: มันเป็นข้อผิดพลาด: ฉันแรกคิดว่าvsvimมันเป็นเหมือนvimperatorและปลั๊กอินชนิดนี้สำหรับโปรแกรมอื่น ๆ และดังนั้นจึงเป็นหัวข้อปิดดังนั้นฉันลบมันแล้วฉันมีข้อสงสัยดังนั้นฉันจึงตรวจสอบเมตาและเห็นว่ามันเป็นหัวข้อดังนั้นฉัน อนุมัติการแก้ไขแท็กของคุณ แต่ลืมที่จะแก้ไขคำถามอีกครั้ง ฉันกำลังเปลี่ยนสิ่งนั้นในตอนนี้ขอโทษสำหรับสิ่งนั้น
statox

คำตอบ:


30

ggVGเลือกเนื้อหาทั้งหมด ggย้ายไปที่บรรทัดแรก Vเริ่มโหมดภาพ Gข้ามไปที่บรรทัดสุดท้ายดังนั้นการเลือกจากบรรทัดแรกถึงบรรทัดสุดท้าย


17

พร้อมกับคำตอบของ SibiCoder ถ้าคุณมีความคิดที่ชัดเจนว่าคุณต้องการทำอะไรคุณสามารถใช้สิ่งต่อไปนี้:

:%X

Xคำสั่งอยู่ที่ไหนตัวอย่างเช่น:

:%d             -> delete every line
:%y             -> yank every line
:%normal! >>    -> indent every line

คุณยังมีคำสั่งระดับโลก:gซึ่งด้วยรูปแบบการค้นหา^สามารถทำสิ่งเดียวกัน:

:g/^/d             -> delete every line
:g/^/y             -> yank every line
:g/^/normal! >>    -> indent every line

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

ดู: :h :%และ:h :gสำหรับการอ้างอิง


โปรดทราบว่าแม้ว่าการC-Aแมปจะใช้เป็นกลุ่ม (ดู:h CTRL-A) คุณสามารถแมปเพื่อทำสิ่งที่ผู้แก้ไขอื่นทำ:

nnoremap <C-A> ggVG

4

คำตอบอื่น ๆ เป็นสิ่งที่ดี นี่คืออีกทางเลือกหนึ่ง

เมื่อคุณพูดถึงว่าคุณกำลังใช้ VsVim คุณสามารถเปลี่ยนคีย์ที่จัดการโดย Visual Studio และคีย์ใดที่จัดการโดย vsvim ไปที่

เครื่องมือ -> ตัวเลือก -> VsVim -> คีย์บอร์ด

จากตรงนั้นคุณสามารถตั้งค่า Ctrl-a ให้จัดการโดย Visual Studio แทนที่จะเป็น VsVim

แม้ว่าฉันจะไม่แนะนำสิ่งนี้เพราะคุณจะไม่สามารถใช้เสียงเรียกเข้าได้<C-a>ซึ่งฉันคิดว่าเป็นคุณสมบัติที่สำคัญ แม้ว่ามันจะขึ้นอยู่กับคุณ


0

คุณสามารถใช้จำนวนมากเช่น99999 ปีเพื่อเลือกเนื้อหาทั้งหมดของไฟล์ของคุณ


3
ไฟล์ที่มีขนาดใหญ่กว่า100000เส้นเป็นไปได้แม้ว่าจะหายาก นอกจากนี้การใช้yyจะดึงพวกเขาไม่เลือกพวกเขา
James

1
ย่ะแน่ใจว่าคุณมีสิทธิ แต่เมื่อมีการเลือกบางสิ่งบางอย่างมันสำหรับกรณีที่มากที่สุดในการตัดคัดลอกหรือลบพวกเขา :)
อาเดล Kihal

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