คำถามติดแท็ก visual-mode

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

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

10
จะใส่เครื่องหมายชุดของเส้นที่เลือกในโหมดภาพได้อย่างไร?
ฉันจะแสดงความคิดเห็นออกหลายบรรทัดในโหมดภาพที่เลือกได้อย่างไร ฉันจะทำให้เป็นภาษาเฉพาะได้อย่างไร ตัวอย่างเช่นหากเลือก 4 บรรทัดแรก: def foo(a,b): for each in (a,b): print each return a+b print "2" การดำเนินการของคำสั่ง / แมโครควรส่งผลให้สิ่งนี้ (ในหลาม): #def foo(a,b): # for each in (a,b): # print each # return a+b print "2"

1
ขยายการเลือกภาพในทิศทางอื่น
บางครั้งฉันได้เลือกตัวเลือกที่มองเห็นด้วยตัวอย่างเช่นVjjjjjเท่านั้นที่จะตระหนักในภายหลังว่าฉันควรจะเริ่มต้นการเลือกหนึ่งบรรทัดที่สูงกว่า อย่างไรก็ตามการกดkเพียงแค่ลดช่วงการเลือกที่ต่ำลงแทนที่จะเลื่อนการเลือกทั้งหมดขึ้นหนึ่งบรรทัด ต่อไปนี้เป็นization ภาพ (ฮ่า, ฮ่า) ซึ่งเส้นหนาเป็นเส้นที่ฉันเลือก: อย่าเลือกบรรทัดนี้ อย่าเลือกบรรทัดนี้ เลือกบรรทัดนี้! เลือกบรรทัดนี้! <- ฉันกดตรงVนี้ ... เลือกบรรทัดนี้! เลือกบรรทัดนี้! เลือกบรรทัดนี้! เลือกบรรทัดนี้! <- ... และย้ายไปที่นี่ แต่ฉันควรจะเริ่มต้นของฉัน อย่าเลือกการเลือกบรรทัดนี้หนึ่งบรรทัดที่สูงกว่า! อย่าเลือกบรรทัดนี้ ฉันจะขยายการเลือกภาพโดยการเลื่อนจุดเริ่มต้นไปในทิศทางอื่นได้อย่างไร? หากเป็นไปไม่ได้มีวิธีเพิ่มการแมปใน. vimrc ของฉันที่ทำให้ฉันทำเช่นนั้นได้หรือไม่?

3
จะเปลี่ยนเฉพาะภายในการเลือกภาพได้อย่างไร
หนึ่งจะได้รับเป็นกลุ่มเพื่อแทนที่ตัวละครในการเลือกภาพเท่านั้นและไม่ได้ที่อื่นในบรรทัด? ตัวอย่าง: เส้น: int arr[] = { 00 01 02 03 04 05 05 /* ... lots more like this*/}; การเลือกภาพ: { 00 01 02 03 04 05 05 /*... lots more like this*/} คำสั่ง: :'<,'>s/\ /\,0x/g ที่คาดว่าจะ int arr[] = {0x00,0x01,0x02,0x03 /* and so on*/}; อย่างไรก็ตามหลังจากดำเนินการเหล่านี้แล้วผลลัพธ์ที่แท้จริงคือ: int,0xarr[],0x=,0x{0x00,0x01,0x02,0x03 /* and …

2
วิธีการบล็อกรหัสแทนที่ในโหมดภาพ?
ฉันมีรายการที่ฉันต้องการแทนที่อักขระสองตัวแรก: a) item 1 b) item 2 c) item 3 วิธีที่เร็วที่สุดในการทำสิ่งนี้คือ: * item 1 * item 2 * item 3 ฉันมีวิธีการที่มีโหมดภาพ (Ctr-v, jjj แต่ต้องทำสองคำสั่งแทนที่ Iirc การแทนที่นี้สามารถทำได้ด้วย 1 คำสั่ง)

7
วิธีย้ายบล็อกข้อความได้เร็วขึ้น
นี่คือวิธีที่ฉันมักจะคัดลอกบล็อกข้อความหรือรหัส: เลือกบล็อกด้วยโหมด Visual ( V) และลบด้วย d; ddหรือถ้ามันเป็นเพียงบรรทัดเดียวใช้เพียง ไปที่ที่ฉันต้องการให้เป็นข้อความฉันโง่เกินกว่าที่จะจดจำความแตกต่างระหว่างpและPดังนั้นฉันจึงได้รับสิทธิ์นี้ประมาณ 50% ของเวลา (ถ้าฉันทำผิด: เลิกลองใหม่อีกครั้ง) บางครั้งการเยื้องต้องปรับดังนั้นฉันไปที่โหมด Visual Vอีกครั้งและเลือกบล็อกเดียวกันอีกครั้งและใช้>หรือ <เพื่อแก้ไข มีวิธีที่ง่ายกว่านี้ไหม? ในบรรณาธิการบางคนฉันเห็นว่าคุณสามารถ "หยิบ" บล็อกข้อความเหมือนเดิมและเลื่อนไปมาได้ นี่คือตัวอย่างจาก Emacs (แต่ฉันเคยเห็นสิ่งนี้ในบรรณาธิการอื่น ๆ ): หรืออาจมีวิธีอื่น (ดียิ่งขึ้น)

3
คุณเยื้องอย่างไร> <โดยไม่ออกจากโหมดภาพและสูญเสียการเลือกปัจจุบันของคุณ?
ฉันมักจะต้องเยื้องด้วยตนเอง แต่เมื่อฉันเข้าสู่โหมดภาพให้เลือกบรรทัดของฉันเพื่อเยื้องและกด&lt;หรือ&gt;ฉันออกจากโหมดภาพไม่ว่าฉันต้องการหรือไม่ ฉันอยากได้มันดังนั้นฉันจึงยังคงอยู่ในโหมดภาพและรักษาตัวเลือกและตำแหน่งเคอร์เซอร์ไว้เหมือนเดิม ฉันจะบรรลุสิ่งนี้ได้อย่างไร


1
พับบรรทัดที่เลือก
ฉันจะพับและคลายเส้นที่เลือกในโหมดภาพได้อย่างไร? ให้บอกว่าฉันมีสามย่อหน้าและฉันต้องการพับสองหรือย่อหน้าแรกเป็นบรรทัดเดียว: Test ==== Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias.. Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido …

2
จะแทนที่ข้อความในบล็อกข้อความที่เลือกได้อย่างไร?
ไม่ใช่เรื่องง่ายที่จะหาชื่อที่ดีสำหรับปัญหาของฉัน ฉันรู้ที่จะแทรกหน้าบล็อกข้อความ: Ctrl- v เลือก ข้อความประเภทบรรทัดI ESC ตอนนี้ฉันต้องการจะทำเช่นนี้ แต่ยังรวมถึงการแทนที่ส่วนหนึ่งในการเลือกบล็อกของฉัน ขณะนี้ฉันกำลังดำเนินการสองอย่าง Ctrl- v เลือกบล็อก x กลับไปเริ่มต้น ตามด้วยลำดับที่ฉันพูดถึงข้างต้น มีวิธีรวมการดำเนินการทั้งสองนี้ด้วยการเลือก ( Ctrl- v) บล็อกเพียงครั้งเดียวหรือไม่ นี่คือตัวอย่างเล็ก ๆ : ฉันต้องการแปลงบล็อกต่อไปนี้ 1 text 2 text 3 text 4 text 5 text เข้าไป new text new text new text new text new text ทำ "การดำเนินการ" เพียงครั้งเดียว

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

3
ฉันจะระบุแหล่งที่มาของการเลือก vimscript ได้อย่างไร?
หากฉันมี vimscript สองบรรทัดที่ฉันต้องการทดสอบก่อนที่จะใส่ vimrc ของฉันมันเป็นไปได้หรือไม่ที่จะสามารถเลือกภาพได้ ฉันเหนื่อย ทำการเลือกด้วยสายตาvจากนั้นจึงทำการเลือก ฯลฯ :'&lt;,'&gt;so แต่เป็นกลุ่มให้ข้อผิดพลาด ไม่อนุญาตให้ใช้ช่วง ด้วย :'&lt;,'&gt;w | so จะช่วยให้ ใช้! เพื่อเขียนบัฟเฟอร์บางส่วน ฉันจะแหล่ง vimscript ที่เลือกด้วยสายตาได้อย่างไร

3
เลือกภาพจากเคอร์เซอร์จนถึงบรรทัดว่างถัดไปหรือไม่
หนึ่งจะเลือกจากบรรทัดปัจจุบันไปยังบรรทัดว่างถัดไปได้อย่างไร ฉันรู้SHIFT+ Vแต่แล้วฉันต้องข้ามไปยังบรรทัดว่างถัดไปหรือกดปุ่มลงหลายครั้ง ฉันรู้วิธีการทำสิ่งนี้ได้ดีเมื่อมีตัวละครที่ตรงกันเช่น a }แต่ฉันไม่รู้ว่าจะทำอย่างไรเพื่อบรรทัดที่ว่างเปล่า

4
วิธีการเลือกข้อความที่มีความยาวแตกต่างกันในแต่ละบรรทัด
สมมติว่าฉันมีข้อความต่อไปนี้: aaa-dd-e: "aaa", bb-x: "bb", c-9: "c" ฉันต้องการที่จะทำการเลือกเช่นด้านล่าง: aaa-dd-e:"aaa", bb-x:"bb", c-9:"c" ฉันพยายามใช้ cv เพื่อสร้างบล็อกแบบเห็นภาพ แต่หลังจากฉันสร้างส่วนที่เลือกในคอลัมน์แรกและฉันกด "f:" (ฉันหมายถึงการขยายส่วนที่เลือกไปยังเครื่องหมายโคลอนในทุกบรรทัดด้านบน) สิ่งที่ฉันได้คือ: aaa-dd-e: "aaa",: bb-x"bb", c-9:"c" ส่วนที่เลือกจะหยุดที่เครื่องหมายโคลอนแรกและสร้างสี่เหลี่ยมผืนผ้า

1
วิธีการแก้ไขบล็อกที่เลือกด้วยคำสั่งภายนอก?
ฉันมีไฟล์ที่ประกอบด้วยสองส่วนแนวตั้ง ด้านซ้ายมีการจัดรูปแบบข้อมูลแล้วและฉันไม่ต้องการเปลี่ยนแปลง ฉันต้องการจัดรูปแบบข้อมูลทางด้านขวาเท่านั้น บอกว่าฉันมีไฟล์ที่มีเส้นเหมือนกัน foo=bar baz # Neato Junk quux=xyzzy # Bilbo Baggins Ring มีอีกหลายบรรทัดเช่นนั้น ฉันต้องการแก้ไขข้อความทางด้านขวาของอักขระ '#' เท่านั้น ฉันเลือกข้อความที่ฉันต้องการด้วยนิพจน์ต่อไปนี้: gg /# ctrl-v G $ แต่ถ้าฉันลองปรับเปลี่ยน (พูดด้วย:'&lt;,'&gt;!column -t) จริง ๆ แล้วมันจะปรับเปลี่ยนทั้งหมดของทุกบรรทัด นิพจน์ที่ถูกต้องที่ใช้เพื่อแก้ไขเฉพาะส่วนที่มองเห็นคืออะไร

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