Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Until you save a document in gedit, syntax highlighting is turned off. There are obviously good reasons for this -- people might get confused if certain words were randomly showing up in different colors. But for my purposes, I use gedit almost exclusively for HTML editing.

A lot of times I paste snippets of code into a new gedit document for quick editing, and I have to manually set the syntax coloring to HTML. Other times, I open ColdFusion (.cfm) documents, which gedit apparently doesn't recognize, and again I have to manually set the color to HTML. Both of these inconveniences would be fixed if I could find a way to tell gedit to automatically use HTML syntax highlighting for new documents and documents without a recognized file extension. Is this possible?

share|improve this question
I was also wondering if I could switch between different languages without having to save the file, just like in SciTE. Would save me time. – nickguletskii May 23 '11 at 15:32
up vote 18 down vote accepted

You can at least add file extensions in the html syntax coloring scheme by editing html.lang in /usr/share/gtksourceview-2.0/language-specs/ as a super user. So say you want to add HTML syntax highlighting to cfm files, you'd change this

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

(default html.lang) into this

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

share|improve this answer
Thanks! This worked for making gedit add syntax coloring to my ColdFusion files. – Michael Martin-Smucker Oct 11 '11 at 16:31
I wish I could add a few extra up-votes to this answer. I just used this answer again to give CSS highlighting to LESS and SASS files. – Michael Martin-Smucker May 29 '12 at 12:53
I like the idea of duplicating and editing the .lang in the user directory myself – jozxyqk Aug 28 '14 at 12:05
@michaelms I added an upvote to the post and to your comment because I also added CSS syntax highlighting to my LESS files in gedit by editing sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang and adding *.less and *.sass to the globs property: <property name="globs">*.css;*.CSSL;*.less;*.sass</property> – Link Swanson Jan 6 '15 at 20:08

This is not possible without modifying the source code of Gedit or writing a plugin to override the default. The default syntax highlighting scheme is hard-coded.

share|improve this answer
Thanks for pointing me in the right direction. I cloned the latest gedit and started poking around before I realized that gedit now depends on gtk+ 3. This has the potential to turn into a much bigger mess than I was bargaining for. ;-) – Michael Martin-Smucker May 23 '11 at 20:15
One more thing: any idea what values for language are valid? I looked through the source for gedit and gtksourceview and I couldn't find anything that looked like language names (but my C skills are pretty non-existent.) – Michael Martin-Smucker May 23 '11 at 20:25
@MichaelMS I'm not sure, but if you plan on investing any effort into a solution I honestly think it may be easiest to just implant a set_language call into the sample Python plugin. You can probably use get_language to figure out the right value for HTML source highlighting. – ændrük May 23 '11 at 20:35

You can create your own language definition files in your $HOME directory. Editing the gtk language specs is not recommended as it will be overriden by every gtksourceview update.

Copy your language specs file to your home directory:

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

Then, add your custom file formats like .cfm to the list of extensions:

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

That way gedit will use auto syntax highlighting on your custom file formats and gtk updates wont override your custom changes.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.