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

5
วิธีการรักษาขีดล่างเป็นส่วนหนึ่งของคำ?
ฉันใช้evilโหมดEmacs + เมื่อฉันวางตำแหน่งเคอร์เซอร์บนe(ในสถานะปกติ) ในก้อนของข้อความเช่นabc_def_ghi, ciw(คำภายในการเปลี่ยนแปลง) การเปลี่ยนแปลงเพียงส่วนหนึ่งของสตริงในขณะที่กลุ่มจะเปลี่ยนทั้งหมดdefabc_def_ghi ฉันevilจะบังคับให้ปฏิบัติกับขีดเส้นใต้ตามที่ Vim ทำ (เช่นเป็นส่วนหนึ่งของคำ) ได้อย่างไร?

2
วิธีการตรวจสอบว่าภายในคู่จับคู่?
ถาม:มีวิธีทั่วไปในการตรวจสอบว่ามีจุดอยู่ภายในคู่อักขระที่ตรงกันหรือไม่ นั่นคือ: มีฟังก์ชันเพรดิเคตทั่วไป (หรือบางอย่าง) ที่สามารถตัดสินได้ว่าจุดนั้นอยู่ระหว่างคู่ที่จับคู่กันหรือตัวละครที่เลือกโดยพลการหรือไม่? ฉันกำลังคิดเกี่ยวกับสิ่งที่จะประเมินtในพูดสถานการณ์ต่อไปนี้โดย!อ้างถึงประเด็น: "!" (quotes in general) ``!'' (LaTeX quotes) $!$ (LaTeX math) (!) (lisp parens) *!* (org emphasis) แก้ไข : syntax-ppssดูเหมือนจะเป็นจุดเริ่มต้นที่ดี แต่ก็ยังไม่ชัดเจนสำหรับฉันว่าจะปรับให้เข้ากับคู่ที่จับคู่แบบหลายตัวละครได้อย่างไร (เช่น '`คำพูดของ LaTeX' หรือแม้กระทั่งจับคู่<b>html tags</b>) ฉันสงสัยว่ามีวิธีแก้ปัญหาทั่วไปหรือไม่หรือต้องใช้เครื่องมือแยกวิเคราะห์
16 elisp  syntax 


3
ปฏิบัติต่อสัญลักษณ์เป็นคำในโหมด prog
มีคำสั่งจำนวนมากใน Emacs ที่ใช้กับ "คำ" ตัวอย่างเช่นforward-word, kill-word, upcase-word, mark-word, transpose-wordsฯลฯ ความหมายของ "คำว่า" ดูเหมือนว่าจะแตกต่างกันเล็กน้อยระหว่างคำสั่ง ตัวอย่างเช่นforward-wordจะหยุดที่ขีดเส้นใต้ภายในคำ (เช่นfoo_bar) แต่mark-wordจะไม่หยุดที่ขีดล่าง เป็นไปได้หรือไม่ที่จะเปลี่ยนคำจำกัดความของ "คำว่า" เมื่อฉันอยู่ในโหมด prog เพื่อที่ Emacs จะใช้ขอบเขตคำที่เหมาะสมสำหรับไวยากรณ์ของภาษาปัจจุบันหรือไม่ เมื่อฉันอยู่ในc-modeฉันต้องการforward-wordข้ามขีดล่างและเมื่อฉันอยู่ในlisp-modeฉันต้องการforward-wordข้ามทั้งยัติภังค์และขีดล่าง ฯลฯ

2
`ไวยากรณ์ -ppss 'เหมาะสมกับภาษาใด
ฉันได้รับการตรวจสอบวิธีการตรวจสอบว่าจุดอยู่ในความคิดเห็นโดยดูว่าบัฟเฟอร์ปัจจุบันเป็นแบบอักษร Smartparens กำหนดซึ่งอาศัยsp-point-in-comment syntax-ppssอย่างไรก็ตามดูเหมือนว่าsyntax-ppssและparse-partial-sexpสามารถใช้สำหรับภาษาใดก็ได้แม้ว่าพวกเขาจะไม่ใช้ s-expressions ตัวอย่างเช่น Python นี้: x = 1 # I'm a comment y = 2 วางจุดภายในความคิดเห็นและประเมินผลการ(if (nth 4 (syntax-ppss)) 'comment 'not-comment)ทำงานอย่างถูกต้อง ใช้syntax-ppssงานได้กับโหมดการเขียนโปรแกรมใด ๆ หรือไม่? ทำไมเอกสารถึงพูดถึง s-expressions

2
มีไวยากรณ์มาตรฐาน / แนะนำสำหรับการกำหนดการผูกคีย์บอร์ดหรือไม่?
ฉันได้เห็นสิ่งต่อไปนี้ทั้งหมดสำหรับการกำหนดการโยงคีย์บอร์ด งานทั้งหมดนี้ (อย่างน้อยใน MS Windows) ฉันไม่รู้ว่ามีวิธีอื่นในการทำสิ่งเดียวกันหรือไม่ ฉันสงสัยว่ามีวิธีมาตรฐานหรือวิธีที่แนะนำในการกำหนดการผูกแป้นพิมพ์หรือไม่และหากมีการแนะนำให้หลีกเลี่ยงสิ่งเหล่านี้ (global-set-key "\M-r" 'some-command) (global-set-key [(meta r)] 'some-command) (global-set-key [?\M-r] 'some-command) (global-set-key (kbd "M-r") 'some-command)

2
ทำให้ forward-sexp รู้จักบล็อกที่กำหนดโดยคำหลักไม่ใช่แค่วงเล็บ
ในภาษา (Julia) ที่มีบล็อกที่กำหนดโดยคำหลักเช่นfor..end, begin..endเช่นเดียวกับวงเล็บสิ่งที่เป็นวิธีที่ดีที่จะข้ามเช่นบล็อกหรือไม่? นอกจากนี้endไม่เพียง แต่เป็นคำหลักบล็อก แต่ยังเป็นตัวระบุที่ถูกต้องที่ใช้ในสถานที่อื่น วิธีหนึ่งคือค้นหา regex เริ่มต้น / ปิดบล็อกและข้ามสายอักขระข้อคิดเห็นและends ฯลฯ ทั้งหมด แต่สิ่งนี้ค่อนข้างไม่มีประสิทธิภาพและน่าเกลียดเล็กน้อย มีวิธีในการแยกวิเคราะห์ไวยากรณ์ของ emacs เองหรือไม่รู้จักคำหลักบล็อกดังกล่าวเพื่อที่forward/backward-sexpจะทำงานโดยอัตโนมัติและเพื่อให้หนึ่งสามารถบอกจุดเริ่มต้นของบล็อกปัจจุบันได้อย่างรวดเร็วจากการส่งออกของเช่นsyntax-ppss? [หมายเหตุ: ฉันไม่รังเกียจที่จะแยกไฟล์ด้วยตัวเอง แต่ในกรณีนี้ฉันยังอยากรู้ว่าตัวแยกวิเคราะห์ของฉันควรเสียบเข้ากับ emacs ที่เหลืออย่างไร]
10 syntax  parsing 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.