ปรับปลายอีกด้านของการเลือกภาพ


14

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

ภาพประกอบ ( |จะแสดงถึงเคอร์เซอร์ (เป็นกลุ่มที่มีการทำงานที่ด้านซ้ายของตัวละครมันอยู่) และ[text]แสดงข้อความที่เลือกเพียงแค่แกล้งพวกเขาใช้ความกว้างเป็นศูนย์พื้นหลังของช่องว่างระหว่าง[ ]ลักษณะสีเทาและตัวละครทันที ต่อไปนี้|คือสีเขียว):

เริ่มกับ

Some |text here
Some second line of text
Some more text in the third line 

กดv2j; โปรดทราบว่าmตัวละครนั้นรวมอยู่ในส่วนที่เลือก (เคอร์เซอร์จะถูกเน้นในตอนนี้):

Some [text here
Some second line of text
Some |m]ore text in the third line 

กด10l:

Some [text here
Some second line of text
Some more text |i]n the third line 

เมื่อถึงจุดนี้ฉันอาจตัดสินใจว่าจะเริ่มเลือกจากที่อื่น เช่นรวมถึง"Some"บรรทัดแรก

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

ดังนั้นใน Vim ฉันชอบความสามารถในการใช้สถานะปัจจุบันของฉันและนำมาสู่สิ่งนี้โดยการกดปุ่มเชื่อมโยงความลึกลับ:

Some [|text here
Some second line of text
Some more text i]n the third line 

จากนั้นฉันก็สามารถกด^หรือ<Home>(ทั้งสองทำเช่นเดียวกันในกรณีนี้ที่ไม่มีช่องว่างนำ) เพื่อเปลี่ยนเป็น

[|Some text here
Some second line of text
Some more text i]n the third line 

พูดว่าฉันเปลี่ยนใจอีกครั้งฉันต้องการที่จะปรับปลายอีก!

[Some text here
Some second line of text
Some more text |i]n the third line 

ตีe:

[Some text here
Some second line of text
Some more text i|n] the third line 

สวย! ฉันสามารถทำอะไรก็ได้ที่ฉันต้องการด้วยการเลือกนี้ในตอนนี้

ดังนั้นสิ่งที่ลึกลับนี้มีผลผูกพัน?

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

v2j10l5ye

ค่อนข้างมากกว่า

v2j10lX^Xe

เฮ้คุณรู้อะไรบ้างนั่นไม่ได้เป็นการปรับปรุงมากนัก เพียงแค่เชื่อคุณลักษณะ X นั้น :)

คำตอบที่สมบูรณ์แบบที่ฉันกำลังมองหา:

  • เฮ้เงยหน้าขึ้นมอง :help some_awesome_vim_feature_that_just_does_this
  • เฮ้ดูสิ https://github.com/awesome_user/vim_plugin_that_does_this
  • เฮ้ดูสิ :help vimscript_functions_that_allow_mutation_of_visual_selections

ฉันค่อนข้างใหม่กับเสน่ห์นี้กับ Vim ดังนั้นฉันจึงเป็นสีเขียวมากเมื่อพูดถึง Vimscript และโดยสุจริตฉันอยากจะอยู่ห่างจากการพยายามเรียนรู้ภาษาอื่นดังนั้นหวังว่าฉันจะไม่ถูกบังคับให้สร้างสิ่งนี้เป็น ปลั๊กอิน


ตกลง. ตอนนี้ฉันไม่รู้ว่าเกิดอะไรขึ้นที่นี่ (คำถามถูกย้ายนินจาอย่างลึกลับจาก SO ไปยัง SU) แต่ตอนแรกฉันโพสต์สิ่งนี้บน SO และฉันต้องการให้อยู่ที่นั่นจริงๆ ด้วยความเคารพจากทุกโปรแกรมเมอร์ไม่เพียงโปรแกรมเมอร์เคยได้ดูแลมากขนาดนี้เกี่ยวกับการแก้ไขข้อความ แน่นอนผู้ใช้ vim ทุกคนจะได้รับประโยชน์จากการเรียนรู้ว่ามันจะทำงานอย่างไรฉันแค่คิดว่ามันจะได้ลูกตาเพิ่มขึ้นและมีโอกาสที่ดีกว่าในการได้รับคำตอบจากที่นั่น devs ของปลั๊กอิน
Steven Lu

บางครั้งคุณอ่าน:help? มีข้อมูลทั้งหมดที่คุณอาจต้องเกี่ยวกับโหมดภาพรวม:help visual-mode o
romainl

บางครั้งฉันก็อ่านมัน แต่อาจจะใช้เวลาประมาณเขียนความคิดของฉัน มันเป็นงานที่ชัดเจนมากกว่าการคาดเดาในสิ่งที่เป็นสายช่วยเหลือ
Steven Lu

การเรียนรู้ดีกว่าการเดา คำตอบของ Heptite สอนคุณสองสิ่งคุณสามารถตั้งชื่อพวกเขา
romainl

ใช่ฉันหมายถึงมีหลายสิ่งที่ต้องเรียนรู้ แต่ฉันลืมไปแล้วว่าOเมืองหลวง O ทำอะไร แต่ฉันจะจำoได้ สิ่งที่สองที่คุณอ้างถึงอาจใช้:helpมากกว่านั้น และฉันใช้มันมากกว่าตอนที่ฉันเริ่ม
Steven Lu

คำตอบ:


49

ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณต้องการจริงๆ แต่อาจเป็นเช่นนี้:

:help v_o

โดยทั่วไปในขณะที่ข้อความถูกเน้นสีที่มองเห็นคุณสามารถกดoและมันจะข้ามไปยัง "สิ้นสุด" อื่น ๆ ของพื้นที่ภาพโดยไม่ต้องแก้ไข


2
อึศักดิ์สิทธิ์ใช่ !!! มันดีกว่าที่ฉันคาดไว้มันมีอยู่แล้วในคีย์เดียวดังนั้นXจริง ๆ แล้วข้างบนคือo
Steven Lu

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

@StevenLu: มันยังไม่ทิ้ง คุณสามารถแตะoอีกครั้งและย้อนกลับ
Heptite

@StevenLu นี่น่าจะเป็นคำตอบที่ยอมรับได้เพราะมันไม่เพียง แต่แก้ปัญหาของคุณเท่านั้นยังมี upvotes อีกมากมายเกิดขึ้นอย่างที่ฉันต้องการในผลการค้นหา Google ครั้งแรกและจริงๆแล้วเป็นคำตอบเดียวที่ทุกคนส่ง ...
Kingdon

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