python – Emacs中的多语言语法高亮显示

python – Emacs中的多语言语法高亮显示,第1张

概述假设我在单个缓冲区中有多种语言的代码,我可以根据相应的语言使用emacs语法突出显示每个代码段吗? 例如,以下代码是python脚本的一部分,但它包含SQL代码: import psycopg2 as pgimport pandas.io.sql as psql# Some SQL code:my_query ='''select count(distinct s.object_uid) 假设我在单个缓冲区中有多种语言的代码,我可以根据相应的语言使用emacs语法突出显示每个代码段吗?

例如,以下代码是python脚本的一部分,但它包含sql代码:

import psycopg2 as pgimport pandas.io.sql as psql# Some sql code:my_query ='''select count(distinct s.object_uID) from dx.dx_segment as s;'''# end of sql codedataframe = psql.frame_query(my_query,connection)

将sql部分突出显示为sql语法会很棒,而文件的其余部分则突出显示为Python.

这在Emacs中可能吗?有什么方法可以向Emacs暗示要使用哪种荧光笔,或许可以利用这些评论?

解决方法 当我在C中使用一些sql时,我有一个使用MMM模式的系统;将所需语句包装在一组注释中,
/* sql */

/* #sql */

以下将给我sql语法高亮

(require 'mmm-mode) (set-face-background 'mmm-default-submode-face nil) (mmm-add-classes  '((embedded-sql     :submode sql-mode     :front "/* sql */"     :back "/* #sql */"))) (mmm-add-mode-ext-class 'c-mode "*.c" 'c-sql) (setq mmm-never-modes               (append '(ediff-mode) '(text-mode) mmm-never-modes))

然后我可以使用mmm-ify-by-class来应用c-sql类 – 也许你可以在Python中做类似的事情?

对我来说,以下lisp允许Emacs将示例python中的示例sql字符串看作sql(浅灰色背景表示MMM模式处于活动状态)

(再次修改以允许单行语句)

(require 'mmm-mode)(mmm-add-classes '((python-sql    :submode sql-mode    :face mmm-code-submode-face    :front "# sql\(\n\|\t\)*\(\[ -_A-Z0-9\]+\)\(\[ =\]\)\(\"\"\"\|'''\)"    :back "\(\"\"\"\|'''\)\( \|\t\|\n\)*\# /sql")))(mmm-add-mode-ext-class 'python-mode "*.py" 'python-sql)
总结

以上是内存溢出为你收集整理的python – Emacs中的多语言语法高亮显示全部内容,希望文章能够帮你解决python – Emacs中的多语言语法高亮显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1206638.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存