คำถามติดแท็ก font-lock

โหมดล็อคแบบอักษรเป็นโหมดรองซึ่งจะอยู่ภายในบัฟเฟอร์เฉพาะซึ่งกำหนดใบหน้าให้กับข้อความในบัฟเฟอร์

7
ฉันจะได้ไม้บรรทัดที่คอลัมน์ 80 ได้อย่างไร
ในฐานะโปรแกรมเมอร์ฉันต้องการเห็นไม้บรรทัดที่คอลัมน์เฉพาะ (ปกติ 80) ทั้งคู่ดังนั้นฉันเห็นเมื่อฉันข้ามคอลัมน์นั้น แต่ยังเพื่อดูว่าฉันเข้าใกล้มันมากแค่ไหนเพื่อให้ฉันสามารถฟอร์แมตโค้ดใหม่ได้เร็วขึ้น ตัวเลือกที่ฉันพบจนถึงขณะนี้ทั้งหมดไม่บรรลุเป้าหมายนี้: whitespace-mode, column-enforce-modeและเพียงเน้นแต่ละแถวหลังข้อความในแถวได้ผ่านไปแล้วcolumn-marker fill-columnฉันต้องการที่จะเห็นเมื่อฉันเข้าใกล้คอลัมน์ไม่เพียง แต่เมื่อฉันข้ามมัน fill-column-indicatorจะเป็นทางออกที่ดีนอกจากจะแบ่งauto-complete-mode, company-mode, avyและอื่น ๆ เหล่านี้เป็นปัญหาที่ดูเหมือนยากที่จะแก้ไขที่กำหนดให้แต่ละวิธีแก้ปัญหาของแต่ละบุคคล - เช่นดูปัญหาและปัญหาหลังมากกว่าสองปี)company-modeauto-complete-mode มีทางเลือกที่ดีกว่านี้อีกไหม?

2
ฉันจะใช้รสชาติ SE ของ Markdown ใน emacs ได้อย่างไร
ฉันต้องการใช้รสชาติ SE ของการ markdown ใน emacs ของฉัน โหมด Markdown เริ่มต้นมีคุณสมบัติบางอย่าง (รหัส backticks และเครื่องหมายย่อหน้า#ทำให้ส่วนหัวและ>เปลี่ยนแบบอักษรด้วย) แต่ฉันต้องการ: * เพื่อสร้างรายการรวมถึงการเยื้อง [foo](http://example.com)เพื่อแสดงเป็นfooและเปิดเบราว์เซอร์เป็นhttp://example.comเมื่อคลิก เป็นการดีที่ฉันต้องการให้แสดงใน emacs ของฉันในรูปแบบ Markdown ตัวอย่างเช่นถ้าฉันจะเขียน: ## Header * item 1 * item 2 while true; do echo foo; done End of list and more code while true; do echo bar; done See [here](http://example.com) …

1
ทำให้สัญลักษณ์มาร์กอัปโหมดองค์กรมองไม่เห็นหรือไม่
ใน Emacs เราสามารถใช้เครื่องหมายดอกจัน * เพื่อให้ได้แบบอักษรที่เป็นตัวหนาตัวอย่างเช่น * bold * คำถามของฉันคือฉันสามารถทำให้มองเห็นดอกจันได้หรือไม่? ie ตัวหนาแทนที่จะเป็น * bold * คำถามเดียวกันสำหรับการขีดฆ่าตัวเอียง ฯลฯ ฉันรู้ว่าสิ่งนี้ควรจะทำได้ เป็นตัวอย่างหนึ่งสามารถตั้งค่าเครื่องหมายดอกจัน org-indent เป็นสีเดียวกันของพื้นหลังดังนั้นมันจะมองไม่เห็น: * Headline one ** Headline two เมื่อเทียบกับ * Headline one * Headline two คุณยังสามารถย้ายเครื่องหมายรูปหมวกเพื่อดูเครื่องหมายดอกจันที่นั่นซึ่งเป็นสิ่งที่ดี กลับไปที่คำถามของฉันฉันไม่รู้ว่าจะทำสิ่งเดียวกันหรือไม่สำหรับมาร์กอัปในการจัดรูปแบบข้อความ

2
ไฮไลต์ตัวแปรเชลล์ภายในเครื่องหมายคำพูด
ในกลุ่มเอกสารต่อไปนี้จะทำให้$PWDบรรทัดบน 2 และ 3 เป็นสีในสองวิธีที่ต่างกัน: #/bin/sh echo "Current Directory: $PWD" echo 'Current Directory: $PWD' อินสแตนซ์แรกของ$PWDจะอยู่ในสีที่แตกต่างจากส่วนที่เหลือของสายมันสิ่งนี้ให้ข้อบ่งชี้ภาพที่ชัดเจนว่าตัวแปรจะขยายตัวมากกว่าถือว่าเป็นข้อความตัวอักษร ในทางตรงกันข้ามอินสแตนซ์ที่สองของ$PWDจะมีสีเหมือนกับส่วนที่เหลือของสตริงเนื่องจากเครื่องหมายคำพูดเดี่ยวทำให้ถือว่าเป็นข้อความตามตัวอักษร มีโหมด emacs ที่มีอยู่แล้วหรือไม่ซึ่งให้ "การรับรู้ข้อความเปลือกหอย" ประเภทนี้?
13 font-lock  bash 

1
การเพิ่มประสิทธิภาพการล็อคแบบอักษร
ฉันต้องการที่จะทำการจับคู่ชุดตัวอักษรของตัวล็อค ฉันมีคำจำกัดความของฟังก์ชั่นที่เริ่มต้นด้วยรายชื่อและฉันต้องการให้ชื่อเหล่านั้นถูกเน้นอยู่ภายในส่วนของฟังก์ชั่น ฉันได้สร้างฟังก์ชั่นที่ทำสิ่งนี้และลงทะเบียนเป็นฟังก์ชั่น jit-lock ด้วย jit-lock-register อย่างไรก็ตามประสิทธิภาพการทำงานค่อนข้างแย่และการเลื่อนล่าช้าในไฟล์ขนาดใหญ่ ฉันจะวัดประสิทธิภาพได้อย่างไร ถ้าฉันเพียงแค่เรียกฟังก์ชั่นของฉันในไฟล์ขนาดใหญ่ (ที่มีเวลาลอยก่อนและหลังหรือด้วย elp) ฉันได้รับประสิทธิภาพที่แตกต่างกันอย่างดุเดือดมันใช้เวลาตั้งแต่ 0.65 ถึง 12 วินาที มีวิธีแนะนำให้ใช้ประสิทธิภาพการล็อคแบบอักษรมาตรฐานหรือไม่ มีประสิทธิภาพแตกต่างกันหรือไม่ระหว่างตัวจับคู่แบบยึดที่กำหนดไว้ในแบบอักษร - ล็อค - คำหลักและเพิ่มฟังก์ชั่นผ่านทาง jit-lock-register? แก้ไข: ดูเหมือนว่าความแปรปรวนของประสิทธิภาพนั้นเกี่ยวข้องกับการรวบรวมขยะการเรียกใช้ฟังก์ชั่น jit-lock ของฉันช้าลงอย่างต่อเนื่องทุกครั้งที่เรียกใช้จนกว่าการรวบรวมขยะจะเริ่มขึ้น

3
กำหนดขอบเขตของบัฟเฟอร์ด้วยโหมดหลักอื่น
ฉันมีบัฟเฟอร์ที่แสดงเอกสารสำหรับโมดูล Ansible บัฟเฟอร์นี้มีโหมดหลักของตัวเองซึ่งมีเนื้อหามาตรฐานทั้งหมด โดยเฉพาะอย่างยิ่งมัน fontifies บัฟเฟอร์เพื่อไฮไลท์มาร์กอัปแบบอินไลน์ตัวเลือกส่วนอื่น ๆ M-x manทั้งหมดในทุกมันสวยคล้ายกับ ที่ด้านล่างของเอกสารมักจะมีตัวอย่างรหัสใน YAML ฉันต้องการที่จะทำให้แบบอักษรเหล่านี้เช่นกัน ฉันสามารถเพิ่มคำสำคัญแบบอักษรของตัวเองล็อคสำหรับ YAML แน่นอน แต่ฉันอยากจะใช้แบบอักษรของโหมด YAML อีกครั้ง ฉันจะทำสิ่งนั้นได้อย่างไร โดยเฉพาะฉันจะใช้โหมดหลักที่แตกต่างกันเพื่อกำหนดขอบเขตของบัฟเฟอร์ได้อย่างไร โปรดทราบว่าโหมด YAML ไม่จำเป็นต้องใช้งานในภูมิภาคนี้ บัฟเฟอร์ทั้งหมดเป็นเพียงบัฟเฟอร์การแสดงผลแบบพาสซีฟและไม่ต้องการแก้ไข ฉันต้องการเพียงการสร้างแบบอักษรที่เหมือนกับว่าโหมด YAML เปิดใช้งานในภูมิภาคนั้น ฉันคิดว่าฉันสามารถคัดลอกขอบเขตของบัฟเฟอร์ไปยังบัฟเฟอร์ชั่วคราวเปิดใช้งานโหมด YAML กำหนดบัฟเฟอร์ของแบบอักษรและคัดลอกคุณสมบัติข้อความทั้งหมดไป มันจะใช้ได้ไหม ถ้าเป็นเช่นนั้นฉันจะคัดลอกคุณสมบัติข้อความและคุณสมบัติที่เกี่ยวข้องที่จะคัดลอกได้อย่างไร หรือมีวิธีการที่ดีกว่า
12 font-lock  region 

1
ตัวแปรที่ประกาศสี
ฉันกำลังมองหาวิธีง่ายๆในการทำให้ emacs จดจำตัวแปรที่ประกาศไว้ในฟังก์ชันเดียวใน C / C ++ โดย "ง่าย" ฉันหมายถึงไม่มีแพ็คเกจภายนอกเพียงแค่มีบรรทัด elisp ในไฟล์กำหนดค่า Emacs การตั้งค่าเริ่มต้นของฉันชื่อตัวแปรสีเหลืองในการประกาศ แต่ให้พวกเขาสีขาวในการใช้งาน char toto; // 'char' is green, 'toto' is yellow toto = 42; // 'toto' is white ฉันต้องการทำให้ทุก "toto" ของฟังก์ชั่น / ขอบเขตเดียวกันเป็นสีเหลืองเช่นกัน ฉันได้ดูคำถามนี้แล้วแต่ฉันต้องการสิ่งที่เรียบง่ายกว่า ฉันพยายามทำบางสิ่งด้วยโหมดล็อคตัวอักษรแต่ฉันไม่สามารถทำสิ่งที่ปรับให้เข้ากับชื่อตัวแปรได้ ฉันมีแนวคิดสำหรับชื่อสมาชิกคลาส C ++ (โดยใช้รูปแบบชื่อ) ดังนั้นฉันจึงต้องการตัวแปรโลคัลตรงกับที่นี่

1
ฉันจะระบุใบหน้าที่กำหนดเองด้วย font-lock-defaults ได้อย่างไร
หากฉันกำหนดคีย์เวิร์ดให้ล็อคแบบอักษรโดยใช้ใบหน้าที่มีอยู่ฉันสามารถไฮไลต์สตริง 'foo' (defconst my-mode-font-lock-keywords (list (cons "foo" 'font-lock-type-face))) (define-derived-mode my-mode fundamental-mode "My mode" "A demo mode." (set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords))) ไฮไลท์นี้ถูกต้อง: อย่างไรก็ตามถ้าฉันกำหนดใบหน้าของตัวเอง: (defface my-mode-foo-face '((t :inherit font-lock-preprocessor-face)) "Face for highlighting 'foo'.") (defconst my-mode-font-lock-keywords (list (cons "foo" 'my-mode-foo-face))) (define-derived-mode my-mode fundamental-mode "My mode" "A demo mode." (set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords))) ไม่มีการนำไฮไลต์ไปใช้: …

2
วิธีเพิ่มการเน้นไวยากรณ์ที่ซับซ้อนในโหมดรองได้อย่างไร
ฉันต้องการไฮไลต์โค้ดด้วยใบหน้าต่างๆในโหมดรอง นี่คือภาพหน้าจอที่ใกล้เคียงกับสิ่งที่ฉันต้องการ: สิ่งหนึ่งที่ฉันหายไปจะมีตัวอักษรแสดงความคิดเห็นใน# font-lock-comment-faceแนวคิดคือมีความคิดเห็นที่ "เป็น" ของโครงร่างที่เน้นเป็นข้อความธรรมดาดังนั้นจึงง่ายต่อการอ่าน ในขณะที่มีความเห็นปกติกับใบหน้าที่โดดเด่นน้อยกว่าปกติของพวกเขา นี่คือรหัสที่ฉันใช้: (setq-local font-lock-defaults '(python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . lpy-font-lock-syntactic-face-function))) (defun lpy-font-lock-syntactic-face-function (state) "Return syntactic face given STATE. Returns 'defalt face for comments that belong to an outline." (cond ((nth 3 state) (if (python-info-docstring-p state) font-lock-doc-face font-lock-string-face)) ((save-excursion (while (and (> (point) …

1
วิธีกำหนดไฮไลต์ไวยากรณ์เองสำหรับโหมดที่กำหนด
ฉันต้องการเปลี่ยนการเน้นไวยากรณ์ในของฉันlua-mode.elโดยไม่กระทบโหมดหลักอื่น ๆ เพียงเป็นตัวอย่างที่ฉันต้องการ "คำสำคัญ" ชอบif, then, elseที่จะอยู่ในอักษรตัวหนาและสีฟ้าเมื่ออยู่ในlua-mode(แทนที่จะเป็นสีชมพูเริ่มต้น) โดยไม่ต้องมีการเน้นรูปแบบเดียวกันในขณะที่แก้ไข.texไฟล์ที่มี AUCTeX จนถึงตอนนี้ฉันได้พยายามใส่รหัสต่อไปนี้ในของฉัน.emacsและจากนั้นในlua-mode.el: (custom-set-faces '(font-lock-builtin-face ((t (:foreground "maroon3")))) '(font-lock-comment-face ((t (:foreground "green4")))) '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold)))) '(font-lock-string-face ((t (:foreground "dark cyan"))))) แต่วิธีนี้ฉันได้รับการเน้นไวยากรณ์เดียวกันสำหรับทุกโหมดที่ฉันทำงานด้วย คำถามนี้อาจเกี่ยวข้อง: เปลี่ยนการเน้นไวยากรณ์โดยไม่ต้องเปลี่ยนโหมดหลักหรือไม่ มีวิธี (หวังว่าง่ายและทั่วไป) ในการทำเช่นนี้?

1
สร้างการเน้นไวยากรณ์ที่สอดคล้องกันของแหล่งบล็อก LaTeX
โซลูชันขององค์กร Org ด้วยตนเองสำหรับการเน้นไวยากรณ์ของบล็อกรหัส org-babel คือการเปิดใช้ฟอนต์แบบดั้งเดิม (setq org-src-fontify-natively t) ทำงานได้ดีสำหรับรหัส LaTeX ที่อยู่ในบล็อกด้วย #+BEGIN_SRC latex แต่ไม่ใช่สำหรับบล็อกที่มี: #+BEGIN_LATEX มีวิธีในการทำบล็อกแหล่งข้อมูลทั้งสองประเภทของ LaTeX ใช้ไวยากรณ์ LaTeX เดียวกันที่เน้นโครงร่าง / การตั้งค่าหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.