เน้นไวยากรณ์ที่ดีขึ้นสำหรับ Java ในกลุ่ม?


13

ฉันได้พบว่า Vim มีการเน้นไวยากรณ์ที่ยอดเยี่ยมด้วยชุดสีที่ฉันต้องการสำหรับ Ruby และ Python แต่เมื่อใดก็ตามที่ฉันจำเป็นต้องเขียนโค้ด Java ก็เหมือนว่าฉันไม่ได้เปิดเน้นสีในตอนแรก

อย่างที่คุณเห็นคำสำคัญถูกเน้น แต่ไม่มีไฮไลต์สำหรับวงเล็บหรือวิธีการ ใน Sublime Text (ตัวแก้ไขที่ฉันต้องการน้อยกว่า) ฉันเห็นการเน้นที่ดีกว่า มีตัวเอียงสำหรับชื่อคลาสและเน้นสำหรับตัวดำเนินการทางคณิตศาสตร์ เป็นกลุ่มดูเบาบางในการเปรียบเทียบ

มีวิธีใดบ้างที่จะได้รับ Sublime ที่เน้นข้อความในสไตล์ Vim?


คุณได้ลองใช้โหมดวินเทจใน Sublime Text แล้วหรือยัง? มันเปลี่ยนการเชื่อมโยงคีย์ทั้งหมดเป็นการใช้ที่ vi (m) แต่ยังคงอนุญาตให้ใช้คุณสมบัติที่มีประสิทธิภาพของ ST2 เช่นการเน้นไวยากรณ์ที่ดีขึ้นและการแก้ไขการเลือกหลายรายการ
MattDMo

2
ฉันเปิดใช้งานโหมดวินเทจใน ST2 แต่ฉันยังชอบ Vim เพราะฉันสามารถใช้ในเทอร์มินัลโดยเปิดบานหน้าต่าง tmux หลายบานเพื่อให้ฉันสามารถ ssh เข้าไปในเครื่องระยะไกลของฉันพร้อมกันโดยไม่ต้องออกจากโปรแกรมแก้ไขนานกว่าวินาที
kunaicode

ใช่มีที่ปราชัยเล็ก ๆ น้อย ๆ ของการใช้โปรแกรมแก้ไข GUI ...
MattDMo

คำตอบ:


0

ดูที่ปลั๊กอินcSyntaxAfter มันเน้นผู้ประกอบการและอื่น ๆ

อีกตัวเลือกหนึ่งคือการแก้ไขsyntax/java.vimสคริปต์และเพิ่มการเน้นสำหรับOperatorกลุ่ม ลองดูsyntax/pascal.vimตัวอย่าง

คุณต้องการใช้ตัวเอียงสำหรับชื่อคลาสซึ่งควรเป็นไปได้หากไฟล์ไวยากรณ์ java รู้จักพวกเขาเป็นกลุ่มและฉันคิดว่ามันเป็นเช่นนั้น ดูเหมือนว่าชื่อคลาสอยู่ในJavaTypedefกลุ่ม

จากนั้นคุณจะต้องกำหนดไฮไลต์ใหม่สำหรับกลุ่มนั้น นั่นจะหมายถึงการลบบรรทัด

JavaHiLink javaTypedef                Typedef

จากไฟล์ไวยากรณ์และเพิ่มใหม่ ด้านล่างฉันกำลังใช้การประกาศไฮไลต์สำหรับประเภทอีกครั้งซึ่งเป็นสิ่งที่ Typedef เชื่อมโยงอยู่ ผมเปลี่ยนtermจากการunderlineitalic

คุณควรใส่สิ่งต่อไปนี้ในjava.vimไฟล์ไวยากรณ์ของคุณ

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

ขอบคุณสำหรับความช่วยเหลือ แต่มี / มีปลั๊กอินหรือปลั๊กอินในการใช้ประโยชน์จากชื่อคลาสหรือไม่
kunaicode

@ kunaicode: ไม่ใช่ที่ฉันรู้ การเน้นไวยากรณ์ไม่ได้เปลี่ยนความหมายของรหัส การใช้อักษรตัวพิมพ์ใหญ่ทำ ส่วนตัวผมต้องการทันทีลบโดยอัตโนมัติปลั๊กอินที่จะเปลี่ยนรหัสที่ฉันได้เขียน
Roland Smith

ฉันขอโทษสำหรับความสับสน - ฉันหมายถึงทำให้ชื่อคลาสเป็นตัวเอียง ไม่ใช้ประโยชน์ ขอโทษ
kunaicode

@kunaicode: ดูคำตอบที่ปรับปรุงแล้ว
Roland Smith

1

ฉันใช้ชุดรูปแบบสีเริ่มต้น base16 ใน Vim และด้วยเหตุผลบางอย่างมันเป็นงานที่ไม่ดีที่กำหนดสีสำหรับ Java การเพิ่มบรรทัดต่อไปนี้จะช่วยให้เป็นส่วนหนึ่งของ:

" 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

1

ดูเหมือนว่าจะไม่มีไฟล์ไวยากรณ์ที่สมบูรณ์ แต่อย่างใด

แต่เราสามารถบีบออกจากไฟล์ซินแทกซ์บันเดิลที่เรามี:

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

เคล็ดลับแรกที่เข้ามาจากที่นี่

หากมีคนสร้างไฟล์ไวยากรณ์ Java ที่สมบูรณ์ยิ่งขึ้นเราควรเพิ่มไฟล์ไว้ในvim-polyglot !

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.