วิธีการกระโดดโดยตรงไปยังหมายเลขคอลัมน์ในกลุ่ม


234

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

ฉันจะทำมันได้อย่างไร


ดูเหมือนว่าเครื่องมือนี้จะต้องมีการคิดค้น "ทำให้ js ของฉันลดน้อยลงและในขณะที่คุณกำลังกระโดดข้ามไปยังจุดที่ระบุด้วยหมายเลขคอลัมน์นี้"
dnellis74

2
@ dnellis74 เครื่องมือนี้มีอยู่ เรียกว่า "sourcemaps";)
Burgi

//, @Burgi สามารถสรุป & ลิงก์ 3 คำได้หรือไม่
Nathan Basanese

คำตอบ:


333

|คำสั่งไม่สิ่งที่คุณต้องการในขณะที่30|จะนำคุณไปยังคอลัมน์ 30

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar


41
ระวังสำหรับการใช้งานทั่วไปว่านี่คือคอลัมน์หน้าจอไม่ใช่คอลัมน์จริง ซึ่งหมายความว่า<Tab>ตัวละครจะได้รับผลลัพธ์ที่แตกต่างกัน ถ้าตัวละครเหล่านี้จะมีคุณแทนจะต้องการ|30lhหรือ|29lหรือ029lหรือสิ่งที่ต้องการ
Chris Morgan

25
นอกจากนี้คุณยังสามารถส่งตัวเลขก่อนคำสั่งการเคลื่อนไหวต่างๆเช่น50hจะเลื่อนไปทางซ้าย 50 อักขระ
AB

7
:set nowrapอาจช่วยลดความสับสนระหว่างบรรทัดหน้าจอและบรรทัดไฟล์
David Pope

4
@DavidPope: โปรดทราบว่าในกรณีนี้ "คอลัมน์หน้าจอ" หมายความว่ายังคงสัมพันธ์กับจุดเริ่มต้นของบรรทัด g0ได้รับ "การเริ่มต้นของบรรทัดหน้าจอปัจจุบัน"
Chris Morgan

10
เอกสารเสียงเรียกเข้าเป็นเฮฮา: "Ceci n'est pas une pipe" :-)
Avinash Meetoo

45

คุณสามารถใช้cursorฟังก์ชั่น ตัวอย่างเช่นในการข้ามไปยังคอลัมน์ที่ 25 ของสาย 15 :call cursor(15,25)คุณสามารถใช้


2
นี่จะให้คำตอบกับคำถามและสะดวกในการใช้คำสั่ง Ex แทนสำหรับการสร้างสคริปต์ โปรดทราบว่าหากหมายเลขบรรทัดเป็นศูนย์เคอร์เซอร์จะอยู่ในบรรทัดปัจจุบัน
Giles Gardam

นี่เป็นสิ่งที่ดีโดยเฉพาะอย่างยิ่งสำหรับการเปิดเป็นกลุ่มจากเครื่องมืออื่น ๆ เนื่องจากการเรียกนี้สามารถทำได้บนบรรทัดคำสั่ง:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves

5

คำตอบอื่นที่เหมาะกับฉันใน Mac OS คือการใช้คำสั่งที่เลื่อนเคอร์เซอร์ไปทางขวา (เช่นl) ดังนั้นหากเคอร์เซอร์ของคุณอยู่ในคอลัมน์แรกและคุณต้องการวางเคอร์เซอร์ที่คอลัมน์ 50 ของบรรทัดปัจจุบันให้ใช้คำสั่ง:

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