แทนที่ unicode chars ใน VIM?


16

ฉันได้รับบันทึกจากเครื่อง windows ซึ่งมีหลายกรณี<200e>ฉันรู้ว่ามันเป็น Unicode char แต่ฉันจะลบมันด้วยsคำสั่งได้อย่างไร

ฉันไม่รู้วิธีป้อนข้อมูลนั้นในcommand"บรรทัด"

แก้ไข

นี่คืออักขระ Unicode ซึ่งหมายความว่าฉันสามารถลบได้ด้วยxการกดปุ่มเดียว.. ไม่ใช่ 6 ตัวอักษร<200e>...


คุณตรวจสอบโพสต์นี้หรือไม่ stackoverflow.com/questions/8562354/…
Rahul Patil

คำตอบ:


23

จาก:help i_CTRL-V_digit:

ด้วย CTRL-V คุณสามารถป้อนค่าทศนิยมฐานแปดหรือฐานสิบหกของอักขระได้โดยตรง วิธีนี้คุณสามารถป้อนอักขระใดก็ได้ยกเว้นการขึ้นบรรทัดใหม่ (ค่า 10) มีห้าวิธีในการป้อนค่าอักขระ:

first char  mode         max nr of chars   max value
( none )    decimal        3               255
o or O      octal          3               377      (255)
x or X      hexadecimal    2               ff       (255)
u           hexadecimal    4               ffff     (65535)
U           hexadecimal    8               7fffffff (2147483647)

ซึ่งหมายความว่าคุณสามารถใช้<Ctrl-v>u200eเพื่อป้อนอักขระและใช้งานได้ตามปกติในคำสั่งทดแทนหรือที่อื่น ๆ

:%s/<Ctrl-v>u200e//g

7
นอกจากนี้ยังมีวิธีเฉพาะ regexp เพื่อแสดงอักขระเพิ่มเติมดู:help /\%u(ซึ่งช่วยให้คุณพิมพ์โดยไม่ต้องใช้ Cv เช่นง่ายต่อการ "วาง"):%s/\%u200e//g
Chris Johnsen

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