2013-03-25 19 views
8

Tôi biết rằng tôi có thể sử dụng thiết lập list listchars=... để hiển thị NonTextSpecialKey ký tự để làm nổi bật các loại khác nhau, cũng không phải văn bản ký tự. Nói chung điều này là thẳng về phía trước và hoạt động. Nhưng nó có tác dụng phụ trực quan làm xáo trộn tôi - trong khi "lơ lửng" con trỏ trên một dòng khi con trỏ được đặt thành listchars được tô sáng bằng một màu khác. Vấn đề đã được đề cập trong this thread và có vẻ như không phải là giải pháp để giải quyết hành vi.Đặt hiển thị và/hoặc màu sắc của danh sách hoặc/hoặc màu sắc của danh sách hoặc che giấu cchar trong vim khi cursorline đang làm nổi bật một dòng

Như một sự bảo trợ, tôi bắt đầu chơi với tính năng ẩn, mang lại cho tôi kết quả khác nhau. set concealcursor=n||v||i||c cho phép tôi kiểm soát chế độ hiển thị các ký tự ẩn. Tôi muốn để có thể thấy nhân vật giấu luôn vì vậy tôi thiết lập như sau:.

function! ConcealNonText() 
    set conceallevel=1 
    set concealcursor=nvic 
    syntax match NonText// conceal cchar=· 
endfunction 

augroup ConcealNonText 
    autocmd! 
    autocmd VimEnter * call ConcealNonText() 
augroup END 

Kết quả là nó làm nổi bật tất cả các không gian mà là nhất luôn có thể nhìn thấy không có vấn đề mà chế độ Tôi hiện đang ở Nhưng một lần nữa có một đáng lo ngại tác dụng phụ - khi tôi đánh dấu các dòng trong chế độ trực quan hoặc làm nổi bật một dòng với con trỏ của tôi, vùng tô sáng bị gián đoạn khi tìm thấy các ký tự ẩn. Chỉ cần nhìn thấy ảnh chụp màn hình:

Visual chế độ với khu vực được lựa chọn:

Vim concealed characters in visual mode

chế độ Normal với cursorline:

Vim concealed characters in normal mode with cursorline

Vì vậy, tôi nghĩ rằng chúng ta hãy cố gắng set concealcursor=ic. Điều này dẫn đến các khu vực được đánh dấu không bị gián đoạn, nhưng sau đó các ký tự bị ẩn.

enter image description here

Vậy là có một nơi nào đó và bằng cách nào đó một giải pháp xung quanh để các chủ đề tôi đã đề cập trong phần đầu của bài viết này hoặc là có cách nào để làm cho cursorline và chọn khu vực thị giác không bị gián đoạn khi sử dụng set concealcursor=nvic?

+1

Một bản vá thực hiện thay đổi đã được đề xuất trên [danh sách gửi thư vim_dev] (http://www.vim.org/community.php): [hiển thị các ký tự danh sách trên dòng con trỏ và chế độ trực quan] (https : //groups.google.com/d/msg/vim_dev/oYeTcHINrrg/u4NmKV8pmGcJ) –

+0

@IngoKarkat Hm, có vẻ đầy hứa hẹn. Làm thế nào là cơ hội chúng tôi sẽ nhận được điều này vào vim? – Saucier

+1

Bạn có thể cải thiện cơ hội bằng cách kiểm tra và chia sẻ kết quả của bạn trên vim_dev. Nó có lẽ sẽ vẫn mất một thời gian, backlog là rất lớn. –

Trả lời

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.

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