2011-11-23 35 views
13

Trong ảnh chụp màn hình Vim này, bạn có thể thấy rằng khi di chuyển con trỏ qua một dòng, nó sẽ thay đổi màu bình thường của các ký tự trắng (hiển thị ở bên trái) từ màu xám sang màu đen. Tôi có thể dừng điều này và để chúng luôn luôn hiển thị màu xám, bất kể vị trí con trỏ không?Trong Vim, bạn có thể ngừng thay đổi màu của các ký tự khoảng trắng với 'đặt con trỏ' không?

enter image description here

Tôi đã cố gắng thiết lập này trong màu sắc nhưng không có may mắn:

hi SpecialKey guibg=bg guifg=#CCCCCC gui=none 
hi NonText  guibg=bg guifg=#CCCCCC gui=none 
+1

Làm cách nào bạn bật tính năng này ngay từ đầu? Tôi muốn. – regality

+0

: đặt danh sách /: set listchars = eol: $, tab:> -, trail: ~, extends:>, precedes: < –

+1

Đẹp, nó có thể hoạt động với tabexpand không? – regality

Trả lời

0

Có bạn có thể. Từ :help listchars (ở cuối):

Các "NonText" làm nổi bật sẽ được sử dụng cho "eol", "mở rộng" và "đến trước". "SpecialKey" cho "nbsp", "tab" và "trail".

Với kiến ​​thức này, bạn có thể sửa đổi bảng màu của mình cho phù hợp hoặc thêm cuộc gọi vào highlight trong vimrc của bạn.

+0

Tôi đã cài đặt: hi SpecialKey guibg = bg guifg = # CCCCCC gui = none hi NonText guibg = bg guifg = # CCCCCC gui = none –

+0

Có lẽ bạn đã bật 'cursorline'? Hãy thử 'set nocursorline' để tắt nó đi. – david

+0

Tôi xin lỗi, bỏ qua điều đó, tôi không thể tin rằng đó là tiêu đề câu hỏi của bạn và tôi đã không đọc nó. – david

3

Bạn có thể sử dụng :match để đánh dấu các tab.

:match NonText '^\s\+' 

Điều đó dường như ghi đè đường con trỏ. Nó sẽ là tốt hơn tất nhiên để sử dụng matchadd() nhưng nó dường như được overriden bởi dòng con trỏ. Có thể có cách để làm cho nó hoạt động

+0

Bạn có thể sử dụng matchadd() nếu bạn đặt nó trong ~/.vim/after/ –

+0

@JohnEikenberry bạn có thể giải thích cách thực hiện điều đó không? – tam5

+0

@ tam5 Bằng cách đặt nó vào ~/.vim/after/nó sẽ chạy sau khi mọi thứ khác được thiết lập để nó không thể bị ghi đè. –

0

Tôi tin rằng bạn đã đặt 'con trỏ chuột'. Nhóm đánh dấu CursorLine xác định các điểm nổi bật giống nhau. Hoặc là bạn set nocursorline, (có thể tăng tốc độ chuyển động của đường thẳng) hoặc thay đổi các nhóm màu nổi bật là CursorLine.

0

Các dòng sau trong .vimrc đã khắc phục sự cố cho tôi.

au VimEnter * call matchadd('SpecialKey', '^\s\+', -1) 
au VimEnter * call matchadd('SpecialKey', '\s\+$', -1) 

Nó ghi đè ứng dụng kiểu khác cho tab và dấu cách bên trong đường con trỏ.

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