Posso impostare l'evidenziazione della sintassi predefinita in Gedit?


24

Fino a quando non si salva un documento in gedit, l'evidenziazione della sintassi è disattivata. Ci sono ovviamente buone ragioni per questo: le persone potrebbero confondersi se certe parole apparissero a caso in diversi colori. Ma per i miei scopi, uso gedit quasi esclusivamente per l'editing HTML.

Molte volte ho incollato frammenti di codice in un nuovo documento gedit per una rapida modifica e devo impostare manualmente la colorazione della sintassi su HTML. Altre volte, apro documenti ColdFusion (.cfm), che apparentemente gedit non riconosce, e di nuovo devo impostare manualmente il colore su HTML. Entrambi questi inconvenienti sarebbero stati risolti se avessi trovato un modo per dire a gedit di usare automaticamente l'evidenziazione della sintassi HTML per nuovi documenti e documenti senza un'estensione di file riconosciuta. È possibile?


Mi chiedevo anche se potevo passare da una lingua all'altra senza dover salvare il file, proprio come in SciTE. Mi farebbe risparmiare tempo.
nickguletskii,

Risposte:


21

Si può almeno estensioni di file aggiuntivo nella sintassi HTML colorazione schema modificando html.langin /usr/share/gtksourceview-2.0/language-specs/come super user. Quindi supponiamo che tu voglia aggiungere l'evidenziazione della sintassi HTML ai file cfm, lo cambieresti

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

(impostazione predefinita html.lang) in questo

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


Grazie! Questo ha funzionato per fare in modo che gedit aggiungesse colorazione di sintassi ai miei file ColdFusion.
Michael Martin-Smucker,

2
Vorrei poter aggiungere qualche voto extra a questa risposta. Ho appena usato di nuovo questa risposta per dare l'evidenziazione CSS ai file LESS e SASS.
Michael Martin-Smucker,

1
Mi piace l'idea di duplicare e modificare l' .langnella directory utente stesso
jozxyqk

1
@michaelms Ho aggiunto un voto al post e al tuo commento perché ho anche aggiunto l'evidenziazione della sintassi CSS ai miei file LESS in gedit modificando sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang e aggiungendo *. less and * .sass to the globs property: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Link Swanson

Potrebbe essere necessario modificare il percorso per diverse versioni di gtksourceview. È inoltre possibile copiare il file nella cartella del profilo per evitare che venga sovrascritto. Vedi la risposta di 5chdn di seguito ( askubuntu.com/a/310553/37574 )
mwfearnley

14

Puoi creare i tuoi file di definizione della lingua nella tua $HOMEdirectory. La modifica delle specifiche del linguaggio gtk non è consigliata in quanto verrà sostituita da ogni aggiornamento di gtksourceview.

Copia il file delle specifiche della lingua nella tua home directory:

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

Quindi, aggiungi i tuoi formati di file personalizzati come .cfmall'elenco delle estensioni:

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

In questo modo geditverrà utilizzata l'evidenziazione automatica della sintassi nei formati di file personalizzati e gli aggiornamenti di gtk non sovrascriveranno le modifiche personalizzate.


1
Questa è un'opzione migliore rispetto alla risposta selezionata. Se possibile, applicare le modifiche localmente.
nightcod3r

Ma come riconoscerà gedut il file copiato in $ HOME? Come faccio a dire a gedit che il file .lang in $ HOME deve essere esaminato ??? Grazie in anticipo.
Srikrishnan,

8

Questo non è possibile senza modificare il codice sorgente di Gedit o scrivere un plugin per sovrascrivere il valore predefinito. Lo schema di evidenziazione della sintassi predefinito è hardcoded .


Grazie per avermi indicato nella giusta direzione. Ho clonato l'ultimo gedit e ho iniziato a frugare prima che mi rendessi conto che gedit ora dipende da gtk + 3. Questo ha il potenziale per trasformarsi in un pasticcio molto più grande di quello che stavo contrattando. ;-)
Michael Martin-Smucker,

Ancora una cosa: hai idea di quali valori languagesiano validi? Ho guardato attraverso la fonte per gedite gtksourceviewnon ho trovato nulla che sembravano nomi delle lingue (ma le mie capacità C sono piuttosto inesistenti.)
Michael Martin-Smucker

1
@MichaelMS Non ne sono sicuro, ma se hai intenzione di investire qualsiasi sforzo in una soluzione, onestamente penso che potrebbe essere più semplice impiantare una set_languagechiamata nel plug-in Python di esempio . Probabilmente puoi usare get_languageper capire il giusto valore per l'evidenziazione della fonte HTML.
ændrük,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.