คำถามติดแท็ก syntax-highlighting

การเน้นไวยากรณ์คือการใช้สีขนาดแบบอักษรหรือแอตทริบิวต์อื่น ๆ เพื่อระบุด้วยสายตาว่ามีความหมายพิเศษดังนั้นจึงทำให้เข้าใจข้อความได้ง่ายขึ้น ตัวอย่างเช่นการทำเครื่องหมายคำหลักของภาษาด้วยสีเฉพาะ

1
ฉันจะแก้ไขไฮไลต์ไวยากรณ์“ ที่หายไป” สำหรับคำหลัก Python เช่น“ ตนเอง” ได้อย่างไร
ฉันพยายามแก้ไขไฮไลต์ไวยากรณ์สำหรับหลาม สีของฉันแตกต่างจากภาพในหน้าจอที่ "ควร" มีลักษณะเหมือนในโทนสีที่ต่างกัน และคุณสามารถเห็นความแตกต่างในการเปรียบเทียบ. rb (ซึ่งแสดงอย่างถูกต้อง) กับ. py ซึ่งดูเหมือนว่าปิดอยู่: ตัวอย่างเช่นสังเกตว่าselfไม่มีการเน้นสี (นี่คือใน base16 แต่การเปรียบเทียบจะคล้ายกันในโทนสีอื่น ๆ ) โดยทั่วไปดูเหมือนว่าการเน้นไวยากรณ์วัตถุผิด บางสิ่งที่ฉันได้ลอง: มองไปที่สคริปต์ไวยากรณ์เป็นกลุ่มโหลด; ความแตกต่างเพียงอย่างเดียวระหว่าง. py และ. rb ในตัวอย่างด้านล่างคือแน่นอนว่า ruby ​​ได้รับการเยื้อง / ruby.vim และ syntax / ruby.vim ขณะที่ python รับการเยื้อง / python.vim และ syntax / python.vim นี่คือไฟล์ที่มาพร้อมกับ homebrew vim การโหลดไฟล์เดียวกันใน macvim แทน terminal (iterm2) vim; …

1
ฉันจะเพิ่มกฎการเน้นไวยากรณ์เพิ่มเติมใน vimrc ในพื้นที่ได้อย่างไร
ฉันติดตั้ง gvim บนทั้ง Fedora และ Win7 ฉันพบว่าทั้ง vim และ gvim บน Fedora ไม่ได้เน้นชื่อฟังก์ชั่นในรหัส c ในขณะที่ gvim บน win7 ได้เน้นไว้ ฉันพบว่าใน win7 vim73/syntax/c.vimมีสายเพิ่มเติมในตอนท้าย: syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2 syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1 hi cFunction gui=NONE guifg=#B5A1FF ถ้าฉันเพิ่มบรรทัดเหล่านี้c.vimใน Fedora, gvim สามารถเน้นชื่อฟังก์ชั่นได้เช่นกัน เพื่อรักษาความสะดวกในการพกพาฉันต้องการเพียงปรับเปลี่ยน.vimrcเพื่อเน้นชื่อฟังก์ชั่น อย่างไรก็ตามหลังจากเพิ่มบรรทัดเหล่านี้ลงใน.vimrcมันไม่ทำงาน ดังนั้นใครสามารถช่วยฉันได้ ฉันค้นหาและมีวิธีแก้ไขมากมายเพื่อเน้นชื่อฟังก์ชั่นเป็นกลุ่ม .vimrcแต่ผมแค่อยากรู้เกี่ยวกับวิธีที่จะทำให้เส้นเหล่านี้ทำงานใน ขอบคุณมาก ๆ!

1
กฎไฮไลต์ที่กำหนดเองอยู่ที่ไหน
บางครั้งฉันต้องการแทนที่ไวยากรณ์เริ่มต้นที่เน้นสีและสไตล์ด้วยการตั้งค่าของฉันเอง ฉันคิดว่าวิธีที่เหมาะสมที่สุดในการทำเช่นนี้คือการสร้างสีของฉันเอง อย่างไรก็ตามฉันมีคำถามสองสามข้อ ถ้าผมต้องการตั้งไฮไลท์สำหรับกลุ่มไวยากรณ์ที่เฉพาะเจาะจงในภาษาเฉพาะไม่นี้เป็นของในสกีมสีของฉันหรือมันจะดีกว่าที่จะวางไว้ในafter/syntax/[filetype].vim? highlight jsAssignExpIdent cterm=bold gui=bold ดูเหมือนแปลกเล็กน้อยที่จะวางกฎเฉพาะภาษาที่ไม่ชัดเจนใน colorcheme เนื่องจากจะมีการโหลดภาษาใดก็ตามที่ฉันกำลังทำอยู่ after/syntax/[filetype].vimบางครั้งฉันสร้างกฎไวยากรณ์ใหม่สำหรับภาษาเฉพาะใน ในกรณีที่ผู้ใช้รายอื่นต้องการใช้ส่วนขยายเหล่านี้มันจะเหมาะสมกับฉันหรือไม่ที่จะต้องจัดทำกฎการไฮไลต์เริ่มต้นที่นั่นซึ่งลิงก์ไปยังกลุ่มไฮไลต์เริ่มต้นทั่วไป หากผู้ใช้รายอื่นต้องการแทนที่สีเน้นสีนั้นพวกเขาควรทำเช่นไร? ::::: after/syntax/asm.vim ::::: syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/ highlight default link asmHexNumber Number

3
Vim ทำงานช้าลงเมื่อเวลาผ่านไปโดยมีการเปิดไวยากรณ์
มีสิ่งใดบ้างที่ฉันสามารถทำได้syntax onเมื่อใช้ Vim ทันทีที่ฉันเปิดสิ่งที่เป็นกอบเป็นกำก็แทบจะเป็นไปไม่ได้ที่จะแก้ไขหลังจากผ่านไประยะหนึ่ง การกดคีย์ทุกครั้งทำให้เกิดความล่าช้า ถ้าฉันปิดการเน้นไวยากรณ์หรือเรียกใช้เป็นกลุ่ม - มันใช้ได้อีกครั้ง ฉันได้synmaxcolตั้งไว้ที่ 120 ไฟล์ตัวอย่างทับทิมมีความยาวเพียง 59 บรรทัดและไม่เกิน 80 อักขระ ฉันใช้และvim-rubyvim-rails ปัญหาคือความล่าช้าดูเหมือนจะสะสมตลอดเวลา เมื่อฉันเปิดไฟล์ตั้งแต่เริ่มต้นก็ถือว่าใช้ได้ หลังจากนั้นไม่นานมันก็ช้าลงเรื่อย ๆ

1
ฉันจะไฮไลต์ชื่อการจับคู่“%” (เช่น if / end, for / end) ที่กำหนดโดย matchit.vim ในการเลือกได้อย่างไร
ปัจจุบัน Vim ของฉันเน้นการจับคู่วงเล็บ, เครื่องหมายคำพูด, ฯลฯ ด้วยพื้นหลังสีฟ้าและพื้นหน้าสีขาว - เคอร์เซอร์สามารถเลื่อนไปมาระหว่างสิ่งเหล่านี้%ได้ ขอบคุณ matchit.vim ของฉันฉันยังสามารถสลับกับ%ระหว่าง if / end for / end ฯลฯ - อย่างไรก็ตามสิ่งเหล่านี้ไม่ได้เน้นที่การเลือก ฉันจะไฮไลต์คู่จับคู่เหล่านี้โดยอัตโนมัติเมื่อเลือกได้อย่างไรเช่นจะทำในวงเล็บโดยอัตโนมัติ นอกจากนี้ฉันจะแก้ไขสีพื้นหลังที่ใช้สำหรับคู่เหล่านี้ได้:highlightอย่างไร ขอบคุณล่วงหน้า. ฉันได้อัปเดตคำตอบโดย @Tommy A ด้านล่างเพื่อบัญชีสำหรับmatchit.vimกลุ่มที่ระบุไม่ดีและสถานการณ์อื่น ๆ ที่%ผู้ประกอบการไม่ได้กลับเคอร์เซอร์ไปที่ตำแหน่งเดิมเคย ตรวจสอบความแตกต่างในการวนรอบ "ในขณะที่" ใครก็ตามที่อ่านหัวข้อนี้ควรใช้เวอร์ชั่นนี้เพื่อหลีกเลี่ยงการวนซ้ำไม่ จำกัด : function! s:get_match_lines(line) abort " Loop until `%` returns the original line number; abort if " (1) …

2
ฉันจะเพิ่มการเน้นไวยากรณ์ไปเป็นกลุ่มได้อย่างไรใน gedit?
เมื่อฉันเขียนสคริปต์ใน gedit คำสั่งความคิดเห็นตัวแปร ฯลฯ ... จะได้รับสีที่แตกต่าง ฉันจะตั้งค่ากลุ่มให้ทำเช่นเดียวกันได้อย่างไร

3
ฉันจะทำให้คำสั่งไฮไลต์ใน. vimrc มีผลทันทีด้วย Vim 7.4 ได้อย่างไร
ฉันมีหลายhighlightคำสั่งใน.vimrcไฟล์ของฉัน ใน Vim 7.3 สิ่งเหล่านี้จะมีผลทันทีหลังจาก Vim เริ่มขึ้น หลังจากอัปเดตเป็น Vim 7.4 นี่ไม่ใช่กรณีอีกต่อไป Vim ใช้การเน้นค่าเริ่มต้นในตอนแรก เมื่อฉันโหลด.vimrcครั้งที่สองโดยเรียกใช้source ~/.vimrcงานการไฮไลต์ทำงานตามที่ฉันต้องการ คุณควรจะทำซ้ำปัญหานี้โดยใช้ขั้นตอนต่อไปนี้: ทำสำเนา.vimrcไฟล์ของคุณ แทนที่ด้วยไฟล์ที่มีเพียงเส้น~/.vimrchighlight Type ctermfg=28 cterm=bold ทำงานvim dummy.cในเทอร์มินัล 256 สี (เช่นเทอร์มินัล GNOME) พิมพ์intลงในบัฟเฟอร์ intควรจะปรากฏในตัวอักษรปกติและจะมีสีเขียวอ่อนซึ่งไม่ได้เป็นสิ่งที่ฉันต้องการ :source ~/.vimrcเข้าสู่ ตอนนี้intควรปรากฏเป็นตัวอักษรหนาและเป็นสีเขียวเข้ม อ้างอิงจากบทความวิธีการควบคุม / สีกำหนดค่าเสียงเรียกเข้าก็ควรจะโอเคที่จะเพียงแค่ใส่คำสั่งลงไปhighlight .vimrcบทความบอกว่าคุณควรใส่syntax enableหลังจากที่highlightคำสั่ง แต่ไม่ได้สร้างความแตกต่างใด ๆ การแก้ไขครั้งแรกของฉันคือการย่อหน้าแต่ละhighlightคำสั่งในด้วย.vimrc autocmd VimEnter *สิ่งนี้ใช้ได้กับไฟล์บางประเภท แต่ไม่เหมาะสำหรับไฟล์ประเภทอื่น (ไฟล์ C เป็นตัวอย่าง) อะไรคือสาเหตุของพฤติกรรมนี้? ฉันจะมีhighlightคำสั่งดำเนินการอย่างไรเมื่อเริ่มต้น Vim …

1
การเน้นไวยากรณ์เป็นกลุ่มของตัวอักษรตัวเลขที่มีตัวคั่นหลักเดียวที่มีเครื่องหมายคำพูด
C ++ 14 ทำให้เรามีตัวเลือกในการใช้เครื่องหมายคำพูดเดี่ยวเพื่อแยกตัวเลขของตัวอักษรตัวเลขขนาดใหญ่ สิ่งนี้จะหยุดยั้งการเน้นไวยากรณ์ของ Vim ตัวอย่างเช่นพิจารณาโปรแกรม C ++ 14 ต่อไปนี้: #include <stdlib.h> int main(int argc, char** argv) { // small numbers are fine int normal_number = 5; // large numbers have the correct highlighting but they're hard to visually parse int huge_number = 1000000000; // apostrophes help with visual …

2
เป็นไปได้ไหมที่จะกำหนดสัญลักษณ์ให้กลุ่ม "Todo"
เป็นไปได้ไหมที่จะเพิ่มเครื่องหมายที่จะแสดงในคอลัมน์สัญญาณเมื่อใดก็ตามที่บรรทัดมีกลุ่มสิ่งที่ต้องทำ (ToDo, FIXME ... ) ปรับเปลี่ยนสีของฉันฉันเปลี่ยนไฮไลต์ของกลุ่มสิ่งที่ต้องทำ แต่ต้องการมีตัวบ่งชี้ในคอลัมน์สัญญาณเช่นข้อผิดพลาดและคำเตือนของ Syntastic

3
วิธีการส่งออกเน้นรหัสแหล่งที่มาเป็นไฟล์ที่จะใช้เป็นกลุ่มนอก
ที่ทำงานของฉันฉันต้องการนำเสนอภาษาที่กำหนดเองที่ฉันพัฒนาขึ้นเพื่อแก้ปัญหาบางอย่างที่เรามี เพื่อการพัฒนาที่ง่ายขึ้นฉันสร้างไฟล์ไวยากรณ์ของตัวเองสำหรับภาษานี้โดยเฉพาะ ตอนนี้ฉันต้องนำเสนอบนคอมพิวเตอร์เครื่องอื่นที่จะไม่มีไฟล์ไวยากรณ์ สำหรับทุกอย่างที่ฉันรู้มันอาจไม่ได้ติดตั้งเป็นกลุ่ม (แต่ฉันก็สงสัย) มันจะสมบูรณ์ถ้าฉันสามารถless -rใช้ไฟล์เพื่อให้ได้ไวยากรณ์เดียวกันโดยเน้นที่ฉันทำบนคอมพิวเตอร์ของฉันเอง อย่างไรก็ตามฉันไม่ทราบวิธีคัดลอกและวางในขณะที่รักษาสี (ในเทอร์มินัลจากคำพังเพยบนเดเบียน) หรือวิธีการส่งออกไฟล์ด้วยไวยากรณ์ที่เน้นเป็นตัวควบคุม raw จากกลุ่ม ฉันมีความมั่นใจมากขึ้นในการหาวิธีแก้ปัญหาจากเสียงเรียกเข้า แต่ฉันไม่รู้ว่าจะทำอย่างไร คุณรู้วิธีที่จะส่งออกไฟล์ที่คุณเปิดด้วยการเน้นไวยากรณ์ของมันเป็น ANSI raw-control-chars ในไฟล์อื่นหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.