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

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

3
รายการประเภทไฟล์ที่รู้จัก
ฉันจะได้รับรายชื่อของประเภทไฟล์ที่กลุ่มในปัจจุบันรู้ได้อย่างไร ฉันต้องการที่จะสามารถทำเช่นนี้เพื่อให้เมื่อ vim ไม่ได้ตรวจสอบชนิดของไฟล์โดยอัตโนมัติฉันสามารถลองประเภทของไฟล์ที่ vim รู้เกี่ยวกับสิ่งนั้นอาจคล้ายกันและดูว่าพวกเขามีการเน้นไวยากรณ์ที่เหมาะสมหรือไม่ ฉันรู้ว่าไฟล์ vimscript ที่เกี่ยวข้องกับ filetypes ถูกวางไว้ในftpluginไดเรกทอรีโดยการประชุม แต่พวกเขาไม่จำเป็นต้อง (ฉันไม่แน่ใจ แต่ฉันไม่คิดว่าไฟล์ vimscript ในftpluginไดเรกทอรีนั้นพิเศษ) ดังนั้นฉันต้องการเพียงแค่ ถามเป็นกลุ่มว่าไฟล์ชนิดใดที่รู้เกี่ยวกับว่ามันเรียนรู้เกี่ยวกับพวกเขาอย่างไร

2
Vim สามารถแปลรหัสการหลีกเลี่ยงสีเทอร์มินัลได้หรือไม่
โปรแกรม CLI จำนวนมากแสดงผลข้อความที่เน้นเป็นอย่างดี ในขณะที่พวกเขาส่วนใหญ่ตรวจสอบว่าการส่งออกไปเป็นไฟล์หรือไม่บางคนรวมถึงรหัสการหลบหนีขั้ว ฉันชอบเอาต์พุตด้วยโค้ด escape แต่การดูไฟล์เหล่านี้ใน Vim นั้นเจ็บปวด Vim สามารถแปลรหัสการหลบหนีเหล่านี้เป็นสีที่คาดหวังได้หรือไม่? ถ้าไม่เป็นกลุ่มสามารถตั้งค่าให้ละเว้นรหัสหนีภัยเหล่านี้ได้หรือไม่

2
การเน้นไวยากรณ์ของ Vim จะถือว่า lambda (->) ใน Java เกิดข้อผิดพลาด
ฉันใช้ Vim เป็นโปรแกรมใน Java 8 และมีปัญหากับการเน้นไวยากรณ์ คุณลักษณะใหม่ในชวา 8 ->คือการสนับสนุนแลมบ์ดาซึ่งมีผลในการสร้างผู้ประกอบการลูกศร: Vim ไม่รู้จักว่านี่เป็นตัวดำเนินการที่ถูกต้องในไฟล์ * .java ด้วยเหตุนี้จึงไฮไลต์โอเปอเรเตอร์นี้เป็นสีแดงสดเพื่อดึงความสนใจไปที่ (แน่นอนว่านี่เป็นไวยากรณ์ที่ถูกต้องจริงๆ) มีวิธีในการอัปเดต "พจนานุกรม" ของ Vim ของผู้ให้บริการที่ได้รับอนุญาตและ / หรือแก้ไขการเน้นไวยากรณ์เพื่อหลีกเลี่ยงปัญหานี้หรือไม่? สอง:versionสถานะแรก: VIM - Vi IMproved 7.4 (2013 10 ส.ค. รวบรวม 2 ม.ค. 2014 19:39:32) แพตช์รวม: 1-52

3
ฉันจะบอกเป็นกลุ่มได้อย่างไรว่านามสกุลไฟล์บางส่วนมีความหมายเหมือนกัน
ฉันแก้ไขรหัส C ++ ใน.cppไฟล์ในขณะที่รหัสแม่แบบเข้าไปใน.tccไฟล์ เมื่อฉันเปิดไฟล์ดังกล่าวจะไม่มีการเน้นไวยากรณ์ ฉันลองใช้ไฟล์set syntax=cppaa แต่ไม่ได้ทำอะไรเลยในขณะที่มันใช้งานได้ มีวิธีที่จะเป็นกลุ่มปฏิบัติต่อส่วนขยายที่เฉพาะเจาะจงเหมือนกันกับคนอื่น ๆ ?tpp.vim~/.vim/ftplugin/

1
ฉันจะเปิดใช้งานไวยากรณ์เฉพาะภาษาภายใน heredoc ได้อย่างไร
เมื่อฉันแก้ไขไฟล์ PHP และฉันกำหนดสตริงใน heredoc การเน้นไวยากรณ์จะเปิดใช้งานภายใน heredoc หากเป็นไวยากรณ์ JavaScript หรือไวยากรณ์ HTML หรือไวยากรณ์ SQL อย่างไรก็ตามมันจะไม่ทำงานสำหรับไวยากรณ์ CSS ตัวอย่าง (ถ้าเราสร้างไฟล์ PHP ใหม่ที่เรียกhello.phpด้วยรหัสต่อไปนี้): <?php $foo = <<<"JAVASCRIPT" var hello = "hello"; JAVASCRIPT; $bar = <<<"CSS" /* This code below should be syntax-highlighted. */ .hello { font-weight: bold; } CSS; JAVASCRIPTบล็อกเป็นไฮไลท์ได้อย่างถูกต้อง แต่CSSบล็อกไม่ได้ นอกจากนี้ถ้าผมทำงานSynStackในvarคำหลักในรหัสบล็อก JavaScript, ฉันได้รับ['phpRegion', 'phpHereDoc', …

6
ตั้งค่าสีเคอร์เซอร์ที่แตกต่างกันเมื่อใช้คำที่เน้น
ด้วย colourscheme ปัจจุบันที่ฉันใช้มันยากที่จะหาตำแหน่งที่เคอร์เซอร์วางไว้เมื่อนำทางผ่านผลการค้นหา สีที่ไฮไลต์และสีของเคอร์เซอร์ผสมกันทำให้หาเคอร์เซอร์ได้ยาก ฉันจะตั้งค่าสีเคอร์เซอร์ได้อย่างไรเมื่ออยู่ในคำที่เน้นสี

5
รูปแบบไวยากรณ์เป็นกลุ่มเพื่อเน้นอาร์กิวเมนต์คำหลักหลาม
ฉันกำลังดิ้นรนกับการเรียนรู้กลุ่ม regexps (ฉันไม่รู้ regexp อื่น ๆ ได้เป็นอย่างดีเช่นกัน) ดังนั้นปัญหาหลักคือการกำหนด regexp ที่จะจับคู่ some_function_call(simple_value, keyword=value) คำสำคัญในตัวอย่างนี้ ดังนั้นควรจับคู่คำถ้ามันอยู่ใน parens และมีเครื่องหมายเท่ากับหลังจากนั้น ปัญหาต่อไปคือวิธีการกำหนดไฟล์ไวยากรณ์ในกลุ่ม ฉันจะซาบซึ้งในความช่วยเหลือ แต่ไม่ควรเรียนรู้อย่างหนักดังนั้นฉันสามารถทำได้ด้วยตัวเอง แก้ไขตามคำตอบฉันได้ทำความคุ้นเคยกับสคริปต์ไวยากรณ์ของตัวเองสำหรับหลาม รู้สึกอิสระที่จะลอง ป้อนคำอธิบายลิงก์ที่นี่

4
ฉันจะป้องกันกลุ่มจากการซ่อนสัญลักษณ์ใน markdown และ json ได้อย่างไร
นี่ทำให้ฉันบ้าคลั่ง :set ft=text หากต้องการดูบางอย่างลิงก์ทั้งหมดจะหายไปใน markdown และเครื่องหมายคำพูดใน JSON จะปิดการใช้งานนี้ครั้งเดียวและทั้งหมดได้อย่างไร

2
ปิดใช้งานการเน้นไวยากรณ์ขึ้นอยู่กับขนาดไฟล์และประเภท
ฉันมักจะต้องแก้ไขไฟล์ XML ต่าง ๆ ด้วย vim ซึ่งมีขนาดแตกต่างกันมาก - จากไฟล์การกำหนดค่าที่มีบรรทัด hunded สองสามบรรทัดไปยังไฟล์ข้อมูลการผลิตที่มีขนาดสูงสุด 2GB แน่นอนว่าการเปิดใช้งานการเน้นไวยากรณ์เป็นความคิดที่แย่มากเมื่อจัดการกับไฟล์ขนาดใหญ่ดังนั้นฉันจึงต้องการปิดใช้งานหากไฟล์มีขนาดใหญ่กว่าเกณฑ์ ฉันไม่สามารถใช้งานautocommandได้โดยตรงเพื่อปิดใช้งานการเน้นไวยากรณ์เนื่องจากคำสั่งถูกเรียกใช้ก่อนที่จะเปิดใช้งานไวยากรณ์เมื่อเริ่มต้น vim จากเชลล์: " this autocmd has no effect except for the echo: autocmd Filetype xml if getfsize(@%) > 1000000 | echom '!' | syntax off | endif ฉันพบวิธีแก้ปัญหาในการที่ฉันสามารถปิดใช้งานการเน้นไวยากรณ์ทั่วโลกจากนั้นเปิดอีกครั้งสำหรับไฟล์ประเภทอื่นทั้งหมดกว่า xml และเปิดใช้งานสำหรับ filetype xml หากไฟล์ไม่ใหญ่กว่าเกณฑ์: syntax off autocmd …

1
ปฏิบัติต่อตัวอักษรสตริงเป็นภาษาอื่น
ฉันมีไฟล์จาวาสคริปต์จำนวนหนึ่งที่สตริงเป็นตัวอย่างของ HTML เพื่อแทรกลงในหน้าเว็บ เป็นกลุ่มทำการเน้นไวยากรณ์บน JavaScript และเน้นสตริงที่ยกมาเช่น ดูเหมือนว่านอกเหนือไปจากการเน้นในความเป็นจริง: ภายในเครื่องหมายคำพูด, กลุ่มที่ไม่ตรงกับ<แท็กที่เริ่มต้นด้วยแท็ก>ที่ลงท้ายด้วยเมื่อใช้%; ดูเหมือนว่าจะถือว่าสิ่งต่าง ๆ เช่นวงเล็บไม่อยู่ในตัวอักษรของสตริง มีวิธีการที่จะเป็นกลุ่มที่ตัวอักษรสตริงที่ควรจะถือว่าเป็นรหัสในภาษาที่แยกต่างหากหรือไม่?

3
ไม่มีการเน้นไวยากรณ์ใน tmux
ผมติดตั้งtmuxใน iTerm 2. (รูปร่าง 3.0.13) เมื่อผมดำเนินการvimในtmux, เน้นไวยากรณ์ลักษณะเช่นนี้ แต่ภายนอก tmux การเน้นไวยากรณ์ดูดี ฉัน$TERMภายในและภายนอก tmux xterm-256colorคือ ฉันยังเพิ่ม set -g default-terminal "screen-256color" ใน.tmux.confและเพิ่มสิ่งนี้ set t_Co=256 set t_AB=m set t_AF=m if &term =~ '256color' set t_ut= endif ใน.vimrc. ฉันลองtmux -2สั่งและอ่านคำถามเหล่านี้ เสีย colorcheme เป็นกลุ่มในโหมด tmux สีไม่ถูกต้องพร้อมเสียงเรียกเข้าใน iTerm2 โดยใช้ Solarized ปัญหานี้เป็นปัญหาของtmux, vimหรือการกำหนดค่าของฉันได้อย่างไร แก้ไข: ของฉัน.vimrcใน GitHub สรุปสาระสำคัญ https://gist.github.com/sohnryang/3c63397f332f2e30c7d7b2a83c3c9f52

1
ฉันจะเปลี่ยนสีของเส้นที่ไฮไลต์ด้วยตัวเลือก 'เคอร์เซอร์' ได้อย่างไร?
ฉันสามารถเน้นบรรทัดปัจจุบันเช่นนี้:set cursorlineซึ่งขีดเส้นใต้บรรทัดปัจจุบัน อย่างไรก็ตามฉันต้องการเน้นทั้งบรรทัดด้วยสีที่เบากว่า ฉันจะทำสิ่งนี้ให้สำเร็จได้อย่างไร?

2
ไฮไลต์ข้อความบรรทัดที่เหมือนกันโดยอัตโนมัติ
ฉันเห็นนินจาที่มีฝีมือทำในขณะนี้กลับมา แต่ฉันก็ไม่รู้จะเริ่ม A) มีวิธีการตั้งค่าสีพื้นหลังของขอบเพื่อให้เส้นที่ต่อเนื่องกันที่มีเนื้อหาเหมือนกันถูกเน้น B) หากใครบางคนรู้วิธีการทำเช่นนี้การปรับแต่งที่ดีสำหรับสิ่งนี้จะเกิดขึ้นหากการไฮไลต์เกิดขึ้นในบรรทัดที่ต่อเนื่องกัน แต่ให้พิจารณาเฉพาะคำแรก (ไม่ใช่ทั้งบรรทัด) การปรับแต่งครั้งที่สองหากการไฮไลต์สามารถกำหนดค่าให้กับสีที่แตกต่างกันนั้นขึ้นอยู่กับจำนวนบรรทัดที่ตรงกัน (หรือคำที่ขึ้นอยู่กับ AB นั้นทำงานอยู่) ดังนั้นเราจึงมีเพียงสองบรรทัดติดต่อกันที่ตรงกับสีเขียว, 3-5 บรรทัดติดต่อกันแล้วสีส้ม, 6+ แล้วสีแดง

1
สามารถสร้างขอบเขตของไวยากรณ์กลุ่มเพื่อสัมผัส / ทับซ้อนได้หรือไม่?
เมื่อไม่นานมานี้ฉันตัดสินใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของไฟล์ไวยากรณ์ของ vim โดยการสร้างของฉันเอง เป้าหมายของฉันคือการสร้างไฟล์ไวยากรณ์อย่างง่ายที่จะแบ่งไฟล์ออกเป็น 3 ส่วนตามตัวคั่นและรวมไฟล์ไวยากรณ์ที่มีอยู่ล่วงหน้าสำหรับสองในสามส่วนนั้น นี่คือไฟล์ตัวอย่าง: Some text, unstyled ==================== Log (Output of git log) ==================== Diff (Output of diff) เป้าหมายคือนำไปใช้git.vimกับบันทึกและdiff.vimเพียงส่วนต่างไม่รวมสองหัว 1 นี่คือสิ่งที่ไฟล์ไวยากรณ์ของฉันดูเหมือน: if exists("b:current_syntax") finish endif syntax include @gitlog $VIMRUNTIME/syntax/git.vim syntax region GitLog \ start=/^===* Log/ \ end=/^===* Diff/ \ contains=@gitlog syntax include @gitdiff $VIMRUNTIME/syntax/diff.vim syntax region Diff …

1
ไวยากรณ์สีแบบผสมในกลุ่ม
ฉันมักจะเขียนเอกสารในknitrใช้เป็นกลุ่มซึ่งหมายความว่าฉันมีรหัส markdown ผสมกับรหัส R ฉันต้องการให้มีการระบายสีไวยากรณ์ R บนชิ้น R แต่ทำเครื่องหมายหรือไม่มีการระบายสีในส่วนอื่น ๆ ทั้งหมด เป็นไปได้หรือไม่ อย่างไร?

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