Чи можна встановити підсвічування синтаксису за замовчуванням у Gedit?


24

Поки документ не зберігається в gedit, підсвічування синтаксису вимикається. Очевидно, що для цього є вагомі причини - люди можуть заплутатися, якби певні слова випадковим чином відображалися в різних кольорах. Але для своїх цілей я використовую gedit майже виключно для редагування HTML.

Багато разів я вставляю фрагменти коду в новий документ gedit для швидкого редагування, і мені доводиться вручну встановити колорит синтаксису в HTML. В іншому випадку я відкриваю документи ColdFusion (.cfm), які gedit, мабуть, не розпізнає, і знову потрібно вручну встановити колір у HTML. Обидва ці незручності будуть виправлені, якби я міг знайти спосіб сказати gedit автоматично використовувати підсвічування синтаксису HTML для нових документів та документів без розпізнаного розширення файлу. Чи можливо це?


Мені також було цікаво, чи можу я перемикатися між різними мовами, не зберігаючи файл, як у SciTE. Врятував би мені час.
nickguletskii

Відповіді:


21

Ви можете принаймні розширення додати файл в синтаксисі HTML фарбувальних схеми шляхом редагування html.langв /usr/share/gtksourceview-2.0/language-specs/якості привілейованого користувача. Отже, скажіть, що ви хочете додати виділення синтаксису HTML до файлів cfm, ви змінили це

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

(за замовчуванням html.lang)

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


Спасибі! Це працювало для того, щоб gedit додав синтаксичне забарвлення до моїх файлів ColdFusion.
Майкл Мартін-Смукер

2
Я хотів би, щоб я міг додати кілька додаткових голосів до цієї відповіді. Я просто використав цю відповідь ще раз, щоб виділити CSS підсвічуванням менших та SASS-файлів.
Майкл Мартін-Смукер

1
Мені подобається ідея дублювання і редагування .langв призначеному для користувача каталозі себе
jozxyqk

1
@michaelms Я додав підсумок до публікації та до вашого коментаря, оскільки я також додав синтаксис CSS до моїх менших файлів у gedit, редагуючи sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang та додавши *. менше і * .sass до власності глобусів: <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, що файл .lang у $ HOME потрібно вивчити ??? Заздалегідь спасибі.
Шрікрішнан

8

Це неможливо без зміни вихідного коду Gedit або написання плагіна для зміни за замовчуванням. Схема підсвічування синтаксису за замовчуванням кодується жорстко .


Дякую, що вказали на мене в правильному напрямку. Я клонував останній gedit і почав кидатись ще до того, як зрозумів, що gedit зараз залежить від gtk + 3. Це має потенціал перетворитися на набагато більший безлад, ніж я торгувався. ;-)
Майкл Мартін-Смукер

І ще одне: будь-яка ідея, для яких цінностей languageсправедливі? Я подивився через джерело geditі gtksourceviewя не міг знайти нічого , що виглядало , як імена мови (але мої навички C досить не існує.)
Майкл Мартін-Смакер

1
@MichaelMS Я не впевнений, але якщо ви плануєте вкладати будь-які зусилля у рішення, я, чесно кажучи, думаю, що це найпростіше просто імплантувати set_languageвиклик у зразок плагіна Python . Можливо, ви можете використовувати get_languageдля визначення правильного значення для виділення джерела HTML.
ændrük
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.