Làm nổi bật cú pháp tốt hơn cho Java trong Vim?


16

Tôi đã tìm thấy Vim để làm nổi bật cú pháp tuyệt vời với các phối màu ưa thích của tôi cho Ruby và Python, nhưng bất cứ khi nào tôi cần viết mã Java, dường như tôi thậm chí không bật tính năng tô sáng ở vị trí đầu tiên.

Như bạn có thể thấy, các từ khóa được tô sáng, nhưng không có tô sáng cho dấu ngoặc đơn hoặc phương thức. Trong Sublime Text (một trình soạn thảo ít được ưa thích hơn của tôi), tôi thấy làm nổi bật tốt hơn nhiều. Có chữ in nghiêng cho tên lớp và tô sáng cho toán tử toán học. Vim trông thưa thớt so sánh.

Có cách nào, cách nào để có được sự nổi bật theo phong cách Sublime Text lộng lẫy trên Vim không?


Bạn đã thử sử dụng chế độ Vintage trong Sublime Text chưa? Nó thay đổi tất cả các ràng buộc chính đối với những sử dụng vi (m) đó, nhưng vẫn cho phép các tính năng mạnh mẽ của ST2 như tô sáng cú pháp tốt hơn và chỉnh sửa nhiều lựa chọn.
MattDMo

2
Tôi đã bật Chế độ cổ điển trong ST2, nhưng tôi vẫn thích Vim hơn vì tôi có thể sử dụng nó trong thiết bị đầu cuối, với một số bảng tmux mở để tôi có thể ssh vào máy từ xa của mình đồng thời mà không cần rời trình soạn thảo của mình trong hơn một giây.
kunaicode

vâng, có một
nhược điểm

Câu trả lời:


0

Hãy xem plugin cSyntaxAfter . Nó nhấn mạnh các nhà khai thác et cetera.

Một tùy chọn khác là chỉnh sửa syntax/java.vimtập lệnh và thêm phần tô sáng cho Operatornhóm. Hãy xem syntax/pascal.vimnhư một ví dụ.

Bạn muốn sử dụng chữ nghiêng cho tên lớp, điều đó có thể xảy ra nếu tệp cú pháp java nhận ra chúng là một nhóm và tôi nghĩ rằng nó có. Có vẻ như tên lớp nằm trong JavaTypedefnhóm.

Sau đó, bạn sẽ phải xác định một điểm nổi bật mới cho nhóm đó. Điều đó có nghĩa là loại bỏ dòng

JavaHiLink javaTypedef                Typedef

từ tệp cú pháp và thêm một tệp mới. Dưới đây tôi đang sử dụng lại khai báo hightlight cho Type, đó là những gì Typedef được liên kết đến. Tôi đã thay đổi termtừ underlinethành italic.

Bạn nên đặt sau đây trong java.vimtập tin cú pháp yout .

hi javaTypedef term=italic cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE

Cảm ơn sự giúp đỡ, nhưng / có bất kỳ plugin hoặc plugin nào để viết hoa tên lớp không?
kunaicode

@kunaicode: Không phải tôi biết. Làm nổi bật cú pháp không làm thay đổi ý nghĩa của mã. Viết hoa nào. Cá nhân tôi sẽ ngay lập tức xóa một plugin sẽ tự động thay đổi mã mà tôi đã viết.
Roland Smith

Tôi xin lỗi vì sự nhầm lẫn-- Ý tôi là, in nghiêng tên lớp. Không viết hoa. Lấy làm tiếc.
kunaicode

@kunaicode: Xem câu trả lời cập nhật.
Roland Smith

2

Dường như không có một tập tin cú pháp phong phú nào ngoài đó.

Nhưng chúng ta có thể vắt kiệt hơn một chút trong tệp cú pháp đi kèm mà chúng ta có:

let java_highlight_functions = 1
let java_highlight_all = 1
" If you are trying this at runtime, you need to reload the syntax file
set filetype=java

" Some more highlights, in addition to those suggested by cmcginty
highlight link javaScopeDecl Statement
highlight link javaType Type
highlight link javaDocTags PreProc

Bí quyết đầu tiên đến từ đây .

Nếu ai đó từng tạo một tệp cú pháp Java phong phú hơn, chúng ta nên thêm nó vào vim-polyglot !


1

Tôi đang sử dụng lược đồ màu mặc định cơ sở 16 trong Vim và vì một số lý do, nó thực hiện công việc xấu khi xác định màu cho Java. Thêm các dòng sau sẽ giúp có được một phần của cách đó:

" Java: 'new', 'instanceof'
highlight Operator ctermfg=5  guifg=#d175bc
" Java: 'this', 'super'
highlight Typedef ctermfg=5  guifg=#d175bc
" Java: 'void', 'int', 'double'
highlight Type ctermfg=4  guifg=#69b7d3
" literal numbers
highlight Number term=bold ctermfg=16 gui=bold guifg=#d2d22d
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.