Tôi có thể đặt tô sáng cú pháp mặc định trong Gedit không?


24

Cho đến khi bạn lưu tài liệu trong gedit, tô sáng cú pháp sẽ bị tắt. Rõ ràng có những lý do tốt cho việc này - mọi người có thể bị nhầm lẫn nếu một số từ nhất định được hiển thị ngẫu nhiên trong các màu sắc khác nhau. Nhưng với mục đích của tôi, tôi sử dụng gedit hầu như chỉ để chỉnh sửa HTML.

Đã rất nhiều lần tôi dán các đoạn mã vào một tài liệu gedit mới để chỉnh sửa nhanh và tôi phải tự đặt màu cú pháp thành HTML. Lần khác, tôi mở các tài liệu ColdFusion (.cfm), mà gedit dường như không nhận ra, và một lần nữa tôi phải tự đặt màu thành HTML. Cả hai sự bất tiện này sẽ được khắc phục nếu tôi có thể tìm cách bảo gedit tự động sử dụng tô sáng cú pháp HTML cho các tài liệu và tài liệu mới mà không cần phần mở rộng tệp được nhận dạng. Điều này có thể không?


Tôi cũng tự hỏi liệu tôi có thể chuyển đổi giữa các ngôn ngữ khác nhau mà không phải lưu tệp, giống như trong SciTE. Sẽ tiết kiệm thời gian cho tôi.
nickguletskii

Câu trả lời:


21

Bạn có thể ít nhất là phần mở rộng add file trong cú pháp html màu chương trình bằng cách chỉnh sửa html.langtrong /usr/share/gtksourceview-2.0/language-specs/vai trò người dùng siêu. Vì vậy, giả sử bạn muốn thêm tô sáng cú pháp HTML vào tệp cfm, bạn sẽ thay đổi điều này

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

(mặc định html.lang) vào đây

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


Cảm ơn! Điều này làm việc để làm cho gedit thêm màu cú pháp vào các tệp ColdFusion của tôi.
Michael Martin-Smucker

2
Tôi ước tôi có thể thêm một vài phiếu bầu bổ sung cho câu trả lời này. Tôi chỉ sử dụng câu trả lời này một lần nữa để làm nổi bật CSS cho các tệp LESS và SASS.
Michael Martin-Smucker

1
Tôi thích ý tưởng sao chép và chỉnh sửa .langtrong thư mục người dùng bản thân mình
jozxyqk

1
@michel ít hơn và * .sass đến tài sản ảm đạm: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Liên kết Swanson

Bạn có thể phải sửa đổi đường dẫn cho các phiên bản gtksourceview khác nhau. Bạn cũng có thể muốn sao chép tệp vào thư mục hồ sơ của mình để ngăn chặn nó bị ghi đè. Xem câu trả lời của 5chdn bên dưới ( askubfox.com/a/310553/37574 )
mwfearnley

14

Bạn có thể tạo các tệp định nghĩa ngôn ngữ của riêng bạn trong $HOMEthư mục của bạn . Việc chỉnh sửa thông số kỹ thuật ngôn ngữ gtk là không được khuyến khích vì nó sẽ được overriden bởi tất cả các bản cập nhật gtksourceview.

Sao chép tập tin thông số ngôn ngữ của bạn vào thư mục nhà của bạn:

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

Sau đó, thêm các định dạng tệp tùy chỉnh của bạn .cfmvào danh sách các tiện ích mở rộng:

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

Bằng cách đó, geditsẽ sử dụng tô sáng cú pháp tự động trên các định dạng tệp tùy chỉnh của bạn và cập nhật gtk sẽ không ghi đè các thay đổi tùy chỉnh của bạn.


1
Đây là một lựa chọn tốt hơn so với câu trả lời được chọn. Khi có thể, áp dụng thay đổi cục bộ.
nightcod3r

Nhưng làm thế nào gedut sẽ nhận ra tệp được sao chép trong $ HOME? Làm thế nào để tôi nói với gedit rằng tệp .lang trong $ HOME cần phải được xem xét ??? Cảm ơn trước.
Srikrish Nam

8

Điều này là không thể nếu không sửa đổi mã nguồn của Gedit hoặc viết một plugin để ghi đè mặc định. Lược đồ tô sáng cú pháp mặc định được mã hóa cứng .


Cảm ơn đã chỉ cho tôi đi đúng hướng. Tôi đã nhân bản gedit mới nhất và bắt đầu chọc ngoáy trước khi tôi nhận ra rằng gedit bây giờ phụ thuộc vào gtk + 3. Điều này có khả năng biến thành một mớ hỗn độn lớn hơn nhiều so với tôi mặc cả. ;-)
Michael Martin-Smucker

Một điều nữa: bất kỳ ý tưởng nào giá trị cho languagelà hợp lệ? Tôi nhìn qua nguồn cho geditgtksourceviewvà tôi không thể tìm thấy bất cứ điều gì mà trông giống như tên ngôn ngữ (nhưng kỹ năng C của tôi là khá không tồn tại.)
Michael Martin-Smucker

1
@MichaelMS Tôi không chắc, nhưng nếu bạn có kế hoạch đầu tư bất kỳ nỗ lực nào vào một giải pháp, tôi thành thật nghĩ rằng có thể dễ dàng nhất để thực hiện một set_languagecuộc gọi vào plugin Python mẫu . Bạn có thể có thể sử dụng get_languageđể tìm ra giá trị phù hợp để làm nổi bật nguồn HTML.
ændrük
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.