Làm thế nào để hiển thị các nhân vật ẩn trong vim?


54

Làm cách nào tôi có thể định cấu hình vim để hiển thị các ký tự ẩn như tab hoặc dấu cách CHỈ trong khi các ký tự đó được nhập? Tôi không muốn các tab và / hoặc không gian được thay thế bằng các ký tự đặc biệt như ">" hoặc "_" khi tệp được ghi.


1
Bạn có chắc chắn cần không gian để hiển thị? Giải pháp điển hình là sử dụng :set list. Điều đó có thể có được mọi thứ trừ không gian.
Kris Harper

Câu trả lời:


64

Bạn có thể sử dụng các lệnh

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

để hiển thị tất cả các ký tự không phải là khoảng trắng. Vì vậy, không gian là thứ duy nhất không hiển thị.

Nếu bạn thực sự cần không gian để được đánh dấu là tốt, bạn sẽ cần phải thử một cái gì đó ít đẹp hơn. Cái gì đó như

:%s/ /█/g

Sẽ thay thế tất cả các không gian bằng một ký tự khối. Sau đó, bạn cần hoàn tác nó trước khi viết. Bạn có thể sắp xếp lại lệnh ghi của bạn làm

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

Chỉ là một gợi ý. Tôi đã không thử điều đó mặc dù.


Cảm ơn đã giúp đỡ; đề nghị của bạn hoạt động khá độc đáo. Tuy nhiên, tôi đã nhận thấy rằng đôi khi tôi mở một số tệp nhất định, tôi thấy "> ---" (tab biểu thị). Có cách nào để làm cho nó để các ký tự tab chỉ hiển thị trong khi gõ không?
dan0

@ dan0 Ý bạn là chỉ trong chế độ chèn? Tôi không biết. Tôi nghi ngờ điều đó. Bạn có thể thực hiện một số chức năng ánh xạ để khi bạn chuyển sang chế độ chèn, đầu tiên nó sẽ gọi :set listcharslệnh và đặt thành không có gì, sau đó gọi lại khi bạn rời khỏi chế độ chèn. Nhưng tôi không biết đủ về bản đồ để làm điều đó.
Kris Harper

@JonathanKomar "set nolist"
Vladislavs Dovgalecs

1
Sử dụng space:␣hoạt động tốt cho tôi: :set listchars=eol:$,tab:>-,trail:~,space:␣
loxaxs

15

Các phiên bản gần đây của vim cũng có thể hiển thị không gian. (Xác nhận trên vim 7.4.1689).

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

4

Trong trường hợp của tôi, tôi đã phải đấu tranh nbsp ,

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

Bạn cũng có thể sử dụng thay vì

Dưới đây là một ví dụ trong đó cấu hình vim ở trên làm nổi bật các không gian "vô hình kỳ lạ" và ngoài ra, nó làm nổi bật các tab (màu đỏ vì tôi đang sử dụng plugin vim trailing-whitespace)

Đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.