Cách tô màu bình luận sau một cột xác định


8

Tôi đã từng được cung cấp các tài liệu này để cho phép người trợ giúp này vimhiển thị loại đường thẳng đứng để giúp thực thi các quy tắc PEP8 về giới hạn độ dài dòng ở cột 80:

"   Long lines highlighting.
nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
    if !&diff
        if !exists('w:longlinehl')
            let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
            echo "Long lines highlighted"
        else
            call matchdelete(w:longlinehl)
            unl w:longlinehl
            echo "Long lines unhighlighted"
        endif
    endif
endfunction

Trong hành động:

toggler đường dài trong hành động

Tôi sử dụng tất cả những điều này để đánh dấu cột thứ 80.

Cho đủ thời gian và nỗ lực tôi rất có thể có một cơ sở tương tự vimđể đánh dấu văn bản vượt xa cột 72 chỉ khi bình luận. Tôi đoán nó đã được mã hóa bởi ai đó ở một nơi nào đó tại một số điểm. Bạn đã biết nơi để tìm đoạn trích đó?


Bạn có thể tìm hiểu nếu một cái gì đó được làm nổi bật như một bình luận với synID()synIDattr(). Một cái gì đó như: if ((synIDattr(synID(line("."), 72, 0), "name") =~ 'comment\c')
Tumbler41

Tôi có phải liên kết với một nnoremaphoặc autocmdhoặc một cái gì đó? Viết nó lên :bàn điều khiển đã ném E110E15🙁.
13260

Câu trả lời:


10

Hãy thử một vùng cú pháp có chứa:

syn match TooLong contained containedin=pythonComment /\%50c.*/
hi link TooLong Error

Thay vì 50, sử dụng 80hoặc 72hoặc bất cứ cột mà bạn thích.

nhập mô tả hình ảnh ở đây


vimPhiên bản nào vậy?
13260

1
8.0.586, sử dụng molokai làm màu sắc.
muru

Thích vim --versiontrình bày VIM - Vi IMproved 8.0.586 ...? Tôi không chắc chắn về những gì đang làm, nhưng tôi nghĩ không làm việc cho tôi như của bạn. Của tôi đang nói VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 10 2017 00:54:29) ..., đó là VIM vanilla của Debian Jessie.
13260

Không có gì đặc biệt mới trong điều này, tất cả các tính năng tôi đang sử dụng ở đây đều khá cũ và nên hoạt động với phiên bản 7.4.488 của Jessie (vì tính năng này cũng hoạt động trên Vim 7.4.160 của CentOS 7). Nói, bạn đã kiểm tra điều này trong một tệp Python? Vì bạn đã đề cập đến PEP8, tôi đã sử dụng containedin=pythonComment. Nếu bạn đang sử dụng một số loại tệp khác, bạn sẽ phải tìm khu vực cú pháp cho các nhận xét và sử dụng thay thế đó.
muru

2
@uprego Chạy các lệnh đó sau khi bạn mở tệp Python. Chỉ cần thêm các dòng đó vào một vimrccông việc sẽ không hoạt động, vì các tệp cú pháp được tải sau đó có thể sẽ xóa bất kỳ quy tắc hiện tại nào. Sử dụng một autocmd hoặc ~/.vim/after/syntax/python.vim.
muru
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.