วิธีการแสดงตัวอักษรที่ซ่อนอยู่ในกลุ่ม?


54

ฉันจะกำหนดค่ากลุ่มเพื่อแสดงอักขระที่ซ่อนอยู่เช่นแท็บหรือช่องว่างเฉพาะในขณะที่พิมพ์อักขระเหล่านั้นได้อย่างไร ฉันไม่ต้องการให้แท็บและ / หรือช่องว่างถูกแทนที่ด้วยอักขระพิเศษเช่น ">" หรือ "_" เมื่อเขียนไฟล์


1
คุณต้องการพื้นที่ในการแสดงหรือไม่? :set listการแก้ปัญหาโดยทั่วไปคือการใช้ ที่สามารถรับได้ทุกอย่างยกเว้นที่ว่าง
Kris Harper

คำตอบ:


64

คุณสามารถใช้คำสั่ง

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
:set list

เพื่อแสดงตัวละครทั้งหมดที่ไม่ได้เป็นช่องว่าง ดังนั้นช่องว่างเป็นสิ่งเดียวที่ไม่ปรากฏ

หากคุณต้องการช่องว่างที่จะทำเครื่องหมายเช่นกันคุณจะต้องลองทำสิ่งที่ไม่ค่อยดี สิ่งที่ต้องการ

:%s/ /█/g

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

cmap :w :%s/█/ /g<CR>:w

เพียงข้อเสนอแนะ ฉันไม่ได้ลองเลย


ขอบคุณสำหรับความช่วยเหลือ ข้อเสนอแนะของคุณทำงานได้ค่อนข้างดี อย่างไรก็ตามฉันสังเกตเห็นว่าบางครั้งเมื่อฉันเปิดไฟล์บางไฟล์ฉันเห็น "> ---" (แท็บระบุ) มีวิธีที่จะทำให้มันเพื่อให้ตัวละครแท็บแสดงเฉพาะในระหว่างการพิมพ์?
dan0

@ dan0 คุณหมายถึงเฉพาะในโหมดแทรกหรือไม่ ฉันไม่รู้ ฉันสงสัยอย่างมาก คุณสามารถสร้างฟังก์ชั่นการทำแผนที่บางอย่างเพื่อที่ว่าเมื่อคุณเข้าสู่โหมดแทรกมันจะเรียก:set listcharsคำสั่งก่อนและตั้งค่าเป็นไม่มีอะไรจากนั้นเรียกมันอีกครั้งเมื่อคุณออกจากโหมดแทรก แต่ฉันไม่รู้เกี่ยวกับแผนที่ที่จะทำ
Kris Harper

@JonathanKomar "set nolist"
Vladislavs Dovgalecs

1
ใช้space:␣งานได้ดีสำหรับฉัน: :set listchars=eol:$,tab:>-,trail:~,space:␣
loxaxs

15

เวอร์ชันล่าสุดของ vim สามารถแสดงช่องว่างได้เช่นกัน (ยืนยันในกลุ่ม 7.4.1689)

:set list
:set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»

4

ในกรณีของฉันฉันต้องต่อสู้nbsp ,

:set listchars=nbsp:☠,tab:▸␣
:set list

คุณสามารถใช้␣แทน☠

นี่คือตัวอย่างที่การกำหนดค่า vim ข้างบนเน้นช่องว่าง "มองไม่เห็นที่แปลก" และนอกจากนี้ยังเน้นแถบ(สีแดงเพราะฉันใช้ปลั๊กอินต่อท้าย - ช่องว่าง whitespace)

ที่นี่

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