Bisakah saya mengatur penyorotan sintaksis default di Gedit?


24

Sampai Anda menyimpan dokumen di gedit, penyorotan sintaks dimatikan. Jelas ada alasan bagus untuk ini - orang mungkin bingung jika kata-kata tertentu muncul secara acak dalam warna yang berbeda. Tetapi untuk tujuan saya, saya menggunakan gedit hampir secara eksklusif untuk mengedit HTML.

Sering kali saya menempelkan potongan kode ke dokumen gedit baru untuk pengeditan cepat, dan saya harus secara manual mengatur pewarnaan sintaks ke HTML. Di lain waktu, saya membuka dokumen ColdFusion (.cfm), yang gedit tampaknya tidak mengenali, dan sekali lagi saya harus mengatur warna secara manual ke HTML. Kedua ketidaknyamanan ini akan diperbaiki jika saya dapat menemukan cara untuk memberitahu gedit untuk secara otomatis menggunakan penyorotan sintaks HTML untuk dokumen dan dokumen baru tanpa ekstensi file yang dikenali. Apakah ini mungkin?


Saya juga bertanya-tanya apakah saya bisa beralih di antara berbagai bahasa tanpa harus menyimpan file, seperti di SciTE. Akan menghemat waktu saya.
nickguletskii

Jawaban:


21

Anda dapat setidaknya ekstensi file add dalam sintaks html mewarnai skema dengan mengedit html.langdi /usr/share/gtksourceview-2.0/language-specs/sebagai super user. Jadi katakanlah Anda ingin menambahkan highlight sintaks HTML ke file cfm, Anda akan mengubahnya

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

(default html.lang) dalam hal ini

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


Terima kasih! Ini berfungsi untuk membuat gedit menambahkan pewarnaan sintaks ke file ColdFusion saya.
Michael Martin-Smucker

2
Saya berharap saya bisa menambahkan beberapa tambahan suara untuk jawaban ini. Saya hanya menggunakan jawaban ini lagi untuk memberikan sorotan CSS ke file KURANG dan SASS.
Michael Martin-Smucker

1
Saya suka ide menggandakan dan mengedit .langdalam direktori pengguna sendiri
jozxyqk

1
@michaelms Saya menambahkan upvote ke posting dan komentar Anda karena saya juga menambahkan highlight sintaks CSS ke file KURANG saya di gedit dengan mengedit sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang dan menambahkan *. kurang dan * .menjual ke properti gumpalan: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Tautan Swanson

Anda mungkin harus memodifikasi lintasan untuk berbagai versi gtksourceview. Anda mungkin juga ingin menyalin file ke folder profil Anda untuk mencegahnya ditimpa. Lihat jawaban 5chdn di bawah ini ( askubuntu.com/a/310553/37574 )
mwfearnley

14

Anda dapat membuat file definisi bahasa Anda sendiri di $HOMEdirektori Anda . Mengedit spesifikasi bahasa gtk ini tidak dianjurkan karena akan ditimpa oleh setiap update gtksourceview.

Salin file spesifikasi bahasa Anda ke direktori home Anda:

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

Lalu, tambahkan format file khusus Anda seperti .cfmke daftar ekstensi:

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

Dengan begitu geditakan menggunakan penyorotan sintaks otomatis pada format file khusus Anda dan pembaruan gtk tidak akan mengesampingkan perubahan kustom Anda.


1
Ini adalah opsi yang lebih baik daripada jawaban yang dipilih. Jika memungkinkan, terapkan perubahan secara lokal.
nightcod3r

Tetapi bagaimana gedut mengenali file yang disalin dalam $ HOME? Bagaimana saya memberi tahu gedit bahwa file .lang dalam $ HOME perlu dilihat ??? Terima kasih sebelumnya.
Srikrishnan

8

Ini tidak dimungkinkan tanpa memodifikasi kode sumber Gedit atau menulis sebuah plugin untuk mengganti default. Skema penyorotan sintaksis default adalah kode-keras .


Terima kasih telah mengarahkan saya ke arah yang benar. Saya mengkloning gedit terbaru dan mulai mencari-cari sebelum saya menyadari bahwa gedit sekarang bergantung pada gtk + 3. Ini memiliki potensi untuk berubah menjadi kekacauan yang jauh lebih besar daripada yang saya tawar-menawar. ;-)
Michael Martin-Smucker

Satu hal lagi: ada ide untuk nilai apa languageyang valid? Saya mencari-cari di sumbernya geditdan gtksourceviewdan saya tidak dapat menemukan apa pun yang tampak seperti nama-nama bahasa (tapi keterampilan C saya tidak ada.)
Michael Martin-Smucker

1
@MichaelMS Saya tidak yakin, tetapi jika Anda berencana untuk menginvestasikan upaya apa pun ke dalam solusi, saya benar-benar berpikir mungkin lebih mudah untuk hanya menanamkan set_languagepanggilan ke plugin Python sampel . Anda mungkin dapat menggunakan get_languageuntuk mengetahui nilai yang tepat untuk penyorotan sumber HTML.
ændrük
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.