2009-07-28 28 views

Trả lời

16

tôi sử dụng một cái gì đó như thế này:

set list listchars=tab:»·,trail:·,precedes:…,extends:…,nbsp:‗ 

Yêu cầu Vim7 và tôi không chắc chắn như thế nào điều này sẽ hiển thị trong trình duyệt, vì nó sử dụng một số ký tự Unicode vui nhộn. Thật tốt khi sử dụng một số ký tự kỳ quặc để bạn có thể phân biệt một tab với thứ mà bạn có thể đã nhập vào.

Ngoài việc hiển thị các tab, hiển thị dấu cách ở cuối dòng là hữu ích để bạn biết cách xóa chúng (chúng gây phiền nhiễu).

+0

wow Tôi đã tìm kiếm điều này một vài tuần trước, nhưng không thực sự tìm thấy bất cứ điều gì (tôi đã không thực sự tìm kiếm rộng rãi) ... cảm ơn :) –

+0

bạn có thể cho chúng tôi biết cách nhập các ký tự đó vào .vimrc của bạn ? –

+0

Sao chép/dán dễ nhất, hoặc 'Ctrl-V u ####' trong đó #### là một điểm mã unicode gồm 4 chữ số. –

5

Sử dụng listlistchars tùy chọn, một cái gì đó như thế này:

:set list 
:set listchars=tab:>- 
3

Nếu bạn làm như sau:

:set list 

sau đó tất cả các ký tự TAB sẽ xuất hiện như ^I và tất cả các dấu không gian sẽ xuất hiện như $.

Sử dụng listchars, bạn có thể kiểm soát những ký tự nào sẽ sử dụng cho bất kỳ khoảng trắng nào. Vì vậy,

:set listchars=tab:... 

kết hợp với :set list làm TAB có thể nhìn thấy như ....

2

Ngoài ra, khi cắt và dán văn bản xung quanh, thật hữu ích khi vô hiệu hóa hiển thị các tab và dấu cách. Bạn có thể làm điều đó với

:set list! 

Và bạn bật lại lần nữa bằng cách lặp lại lệnh.

7

Nhiều người khác đã đề cập đến 'listchars' và 'danh sách' tùy chọn, nhưng chỉ để thêm một lựa chọn thú vị:

if &expandtab == 0 
    execute 'syn match MixedIndentationError display "^\([\t]*\)\@<=\(\{'.&ts.'}\)\+"' 
else 
    execute 'syn match MixedIndentationError display "^\(\(\{' . &ts . '}\)*\)\@<=\t\+"' 
endif 
hi link MixedIndentationError Error 

này sẽ xem xét các thiết lập hiện tại của 'expandtab' (tức là cho dù bạn đã có các tab hoặc không gian cứng giả vờ là tab) và sẽ đánh dấu bất kỳ nội dung nào có thể trông giống như thụt lề chính xác nhưng có dạng sai. Chúng được thiết kế để hoạt động bằng cách nhìn vào các điểm dừng tab, vì vậy các tab được sử dụng cho thụt lề theo sau là các khoảng trống được sử dụng để căn chỉnh đơn giản (không phải là bội số của 'tabstop') sẽ không được đánh dấu là sai.

tùy chọn đơn giản có sẵn: nếu bạn chỉ muốn làm nổi bật bất kỳ tab trong các tập tin sai trong màu đỏ tươi (hoặc bất kỳ màu Lỗi của bạn là), bạn có thể làm:

syn match TabShouldNotBeThereError display "\t" 
hi link TabShouldNotBeThereError Error 

hoặc nếu bạn muốn không gian ở sự bắt đầu của một dòng được coi là một lỗi, bạn có thể làm:

syn match SpacesUsedForIndentationError display "^ +" 
hi link SpacesUsedForIndentationError Error 

Chỉ cần thêm một vài suy nghĩ để thêm vào kết hợp ...biết thêm thông tin ở đây:

:help 'expandtab' 
:help 'tabstop' 
:help 'listchars' 
:help 'list' 
:help :exe 
:help let-option 
:help :hi-link 
:help :syn-match 
:help :syn-display 
2

glenn jackman hỏi làm thế nào để nhập các ký tự (tôi giả sử ông có nghĩa là nhân vật như "» ").

Brian Carper đề xuất phương pháp sử dụng số chỉ mục Unicode của ký tự. Vì nhiều ký tự trông đặc biệt này là các hình vẽ [: giúp đồ họa], bạn cũng có thể sử dụng phím tắt CNTL-k, thường dễ nhớ hơn.

Ví dụ: bạn có thể tạo "» "ở chế độ Chèn bằng cách nhập ký tự CNTL-k và ký tự"> "hai lần.

Các vấn đề liên quan