我可以在Gedit中设置默认语法突出显示吗?


24

在将文档保存到gedit中之前,语法高亮显示处于关闭状态。这显然有充分的理由-如果某些单词随机以不同的颜色出现,人们可能会感到困惑。但是出于我的目的,我几乎只将gedit用于HTML编辑。

很多时候,我将代码片段粘贴到新的gedit文档中以进行快速编辑,而且我必须手动将语法颜色设置为HTML。其他时间,我打开ColdFusion(.cfm)文档,而gedit显然无法识别该文档,并且我不得不再次手动将颜色设置为HTML。如果我能找到一种方法告诉gedit对新文档和没有公认的文件扩展名的文档自动使用HTML语法突出显示,那么这两种不便都会得到解决。这可能吗?


我还想知道是否可以像在SciTE中一样在不必保存文件的情况下在不同语言之间切换。会节省我的时间。
nickguletskii 2011年

Answers:


21

您可以在HTML语法至少把文件扩展名通过编辑配色方案html.lang/usr/share/gtksourceview-2.0/language-specs/超级用户。因此,假设您要向cfm文件添加HTML语法高亮显示,请对此进行更改

<property name="globs">*.html;*.htm</property>

(默认html.lang)到这个

<property name="globs">*.html;*.htm;*.cfm</property>


谢谢!这使gedit为我的ColdFusion文件添加了语法着色。
Michael Martin-Smucker

2
我希望我可以对此答案添加一些额外的赞成票。我只是再次使用此答案来使CSS突出显示到LESS和SASS文件。
Michael Martin-Smucker,2012年

1
我喜欢自己.lang用户目录中复制和编辑的想法
jozxyqk

1
@michaelms我在帖子和您的评论中添加了赞成,因为我还通过编辑sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang并添加*,在gedit中的LESS文件中添加了CSS语法突出显示。 less和* .sass到globs属性:<property name="globs">*.css;*.CSSL;*.less;*.sass</property>
链接Swanson,

您可能必须修改gtksourceview不同版本的路径。您可能还希望将文件复制到您的配置文件文件夹中,以防止被覆盖。见下文(5chdn的答案askubuntu.com/a/310553/37574
mwfearnley

14

您可以在$HOME目录中创建自己的语言定义文件。不建议编辑gtk语言规范,因为每个gtksourceview更新都会覆盖该规范。

将语言规范文件复制到主目录:

$ cp /usr/share/gtksourceview-3.0/language-specs/html.lang ~/.local/share/gtksourceview-3.0/language-specs/

然后,将您的自定义文件格式添加.cfm到扩展名列表中:

<property name="globs">*.html;*.htm;*.cfm</property>

这样,gedit将在您的自定义文件格式上使用自动语法突出显示,并且gtk更新不会覆盖您的自定义更改。


1
比所选答案更好。如果可能,请在本地应用更改。
nightcod3r

但是,gedut将如何识别$ HOME中的复制文件?我该如何告诉gedit $ HOME中的.lang文件需要调查?提前致谢。
Srikrishnan

8

如果不修改Gedit的源代码或编写插件以覆盖默认值,则无法实现。默认语法高亮方案是硬编码的


感谢您指出正确的方向。我克隆了最新的gedit并开始闲逛,直到我意识到gedit现在取决于gtk +3。这有可能变成比我讨价还价更大的混乱。;-)
Michael Martin-Smucker

还有一件事:知道什么值language有效吗?我通过源看上去geditgtksourceview和看起来像语言的名字我找不到任何东西(但我的C技能是非常不存在的。)
迈克尔马丁-斯马克

1
@MichaelMS我不确定,但是如果您打算在解决方案上投入任何精力,老实说,将set_language调用植入示例Python插件中可能是最容易的。您可能可以使用它get_language来找出HTML源代码突出显示的正确值。
ændrük
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.