`<Bar> 'หมายถึงอะไร


23

ในการตอบคำถามตอนนี้ฉันพูดถึงการใช้การแมปปุ่มโหมดปกติที่สามารถพบได้ที่ vim.wikia.com ในช่วงกลางของการอธิบายการทำแผนที่สำคัญฉันรู้ว่าฉันไม่รู้ว่า<Bar>หมายถึงอะไร มันหมายความว่าอะไร?

ฉันพยายามแทนที่ด้วยไพพ์|โดยมีและไม่มีช่องว่างก่อนรอบและหลังจากนั้น แต่แต่ละ.vimrcไฟล์แตกด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้:

Error detected while processing /home/bottomsc/.vimrc:
line  173:
E488: Trailing characters: :nohl<CR>

คำตอบ:


33

มันเป็นรหัสสำหรับตัวละครท่อ| : ไพพ์ใช้วิธีที่ใช้เซมิโคลอนในภาษา C-style เป็นตัวคั่นคำสั่ง คุณไม่สามารถใช้งานได้โดยตรงในการทำแผนที่เนื่องจากจะเห็นว่าเป็นการทำเครื่องหมายจุดสิ้นสุดของการทำแผนที่ ดังนั้นจึงต้องใช้รหัสแทน

มีข้อยกเว้นสำหรับสิ่งนี้เช่นนิยาม autocmd โดยที่บาร์จะคั่นการกระทำของ autocmd แต่ไม่ใช่นิยามเอง

จาก:help :bar:

'|' สามารถใช้เพื่อแยกคำสั่งดังนั้นคุณสามารถให้หลายคำสั่งในหนึ่งบรรทัด หากคุณต้องการใช้ '|' ในการโต้แย้งนำหน้าด้วย '\'

และจาก:help map_bar:

                                                            *map_bar*
Since the '|' character is used to separate a map command from the next
command, you will have to do something special to include  a '|' in {rhs}.
There are three methods:
   use       works when                    example      ~
   <Bar>     '<' is not in 'cpoptions'     :map _l :!ls <Bar> more^M
   \|        'b' is not in 'cpoptions'     :map _l :!ls \| more^M
   ^V|       always, in Vim and Vi         :map _l :!ls ^V| more^M


4

ฉันต้องการที่จะเพิ่มที่อยู่ในโหมดปกติ|คำสั่ง (ซึ่งจะต้องมีการแทนที่ด้วย<bar>, \|หรือ^V|ในขณะที่แมปมันเป็นที่กล่าวถึงในคำตอบอื่น ๆ ) ช่วยให้คุณสามารถไปที่คอลัมน์หน้าจอที่เฉพาะเจาะจงในบรรทัดปัจจุบัน

ตัวอย่างเช่นการพิมพ์5|จะไปที่หน้าจอคอลัมน์ 5 ดังภาพด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

นั่นคือความ|หมายโดยค่าเริ่มต้นในกลุ่ม

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