![gedit 中每个文件类型的首选项](https://linux22.com/image/1036154/gedit%20%E4%B8%AD%E6%AF%8F%E4%B8%AA%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B%E7%9A%84%E9%A6%96%E9%80%89%E9%A1%B9.png)
我尝试使用 gedit 完成两项不同的任务:开发 Python 软件和编写 Latex 文档。两者都基于纯文本文件,但它们有很大不同:例如,需要对齐 Python 代码才能看到代码的结构(循环、函数……)。因此,等宽字体是个好东西。对于编写 Latex 文档,我主要需要可读性。最好使用用于打印的字体来实现这一点,绝对不是等宽字体。
有没有办法告诉 gedit 使用每个文件类型的首选项?例如 *.tex 使用 Garamond,*.py 使用 Monospace?(但这个问题不仅限于字体,也不仅限于 Latex 和 Python)。
答案1
好吧,既然这似乎不可能,我为 gedit2 整理了一个原型插件,目前对我有用。我仍然希望有人有更好的答案...
~/.gnome2/gedit/插件/mimeprefs.py
import gedit
class MimePrefsPlugin(gedit.Plugin):
def __init__(self):
gedit.Plugin.__init__(self)
def activate(self, window):
pass
def deactivate(self, window):
pass
def update_ui(self, window):
doc = window.get_active_document()
try:
mt = doc.get_mime_type()
except AttributeError:
return
view = window.get_active_view()
if 'x-tex' in mt:
view.set_font(False, 'Garamond 14')
elif 'x-python' in mt:
view.set_font(False, 'Monospace 12')
else:
view.set_font(True, 'Monospace 10')
~/.gnome2/gedit/plugins/mimeprefs.gedit-插件
[Gedit Plugin]
Loader=python
Module=mimeprefs
IAge=2
Name=Mime-Prefs v1
Description=A plugin to set font preferences based on the mimetype of the document
Authors=-
Copyright=Public Domain
Website=None
编辑:gedit3 更新:
插件文件进入后~/.local/share/gedit/plugins/
看起来像这样:
mimeprefs.插件:
[Plugin]
Loader=python
Module=mimeprefs
IAge=3
Name=Mime-Prefs
Description=A plugin to set font preferences based on the mimetype of the document
Authors=Stefan Schwarzburg
Copyright=Public Domain
Website=None
Version=1.0.0
mimeprefs.py:
from gi.repository import GObject, Gedit
class MimePrefsPlugin(GObject.Object, Gedit.WindowActivatable):
__gtype_name__ = "MimePrefsPlugin"
window = GObject.property(type=Gedit.Window)
def __init__(self):
GObject.Object.__init__(self)
def do_activate(self):
pass
def do_deactivate(self):
pass
def do_update_state(self):
doc = self.window.get_active_document()
try:
mt = doc.get_mime_type()
except AttributeError:
return
view = self.window.get_active_view()
if 'x-tex' in mt:
view.set_font(False, 'Garamond 14')
elif 'x-python' in mt:
view.set_font(False, 'Monospace 12')
else:
view.set_font(True, 'Monospace 10')
答案2
据我所知,答案是“不”......但是......
gconf-editor 允许您设置打印字体,无论当前在 /apps/gedit-2/preferences/print/fonts 中的 gedit 选项中选择了什么字体,也许还有一个选项可以选择显示字体。如果是这样,一个简单的脚本可以根据文件的扩展名为您更改。
- 编辑 -
您正在寻找的配置部分位于 /apps/gedit-2/preferences/editor/font
制作一个小脚本来根据文件扩展名进行更改,就完成了;)