使用 ubuntu 16.04 使 rgedit 在降级的 gedit (3.10.4) 中工作

使用 ubuntu 16.04 使 rgedit 在降级的 gedit (3.10.4) 中工作

我成功地降级至 gedit 3.10.4这样我就可以继续使用 rgedit 插件了。虽然 gedit 似乎打开了,并且出现了 rgedit 菜单,但 rgedit 按钮并未添加到工具栏,并且该插件无法打开终端选项卡。该插件是用 python 编写的,我对此不太了解。

我如何让 gedit 识别这个插件的 python 代码,尤其是可配置的首选项?


编辑2:我确定这个问题不是代码问题,而是 Python 版本问题(16.04 附带 v3.5.1)。我可能会尝试安装 3.4,看看会有什么结果。


从终端启动 gedit 最初出现有关使用require_versionfor 的错误Vte,因此我在文件顶部添加了:

import gi
gi.require_version('Vte', '2.91')

现在错误已经消失,但是终端却出现了这个错误:

Traceback (most recent call last):
  File "/home/jon/.local/share/gedit/plugins/RCtrl.py", line 2321, in on_create_new_R_tab
    self.createRGeditTerminal(profile)
  File "/home/jon/.local/share/gedit/plugins/RCtrl.py", line 2807, in createRGeditTerminal
    self.R_widget = RGeditTerminal(self._plugin)
  File "/home/jon/.local/share/gedit/plugins/RCtrl.py", line 231, in __init__
    self.reconfigure_vte(self._vte,1)
  File "/home/jon/.local/share/gedit/plugins/RCtrl.py", line 321, in reconfigure_vte
    _vteN.set_colors(fg, bg, palette)
TypeError: argument foreground: Expected Gdk.RGBA, but got gi.overrides.Gdk.Color

RCtrl.py 中相关块的代码(约第 300 行):

    # colors
    _vteN.ensure_style()
    style = _vteN.get_style()

    if self._plugin.prefs['foreground'+str(tab_number)] == None:
        fg = style.text[Gtk.StateType.NORMAL]
    else:
        fg = Gdk.color_parse(self._plugin.prefs['foreground'+str(tab_number)])

    if self._plugin.prefs['background'+str(tab_number)] == None:
        bg = style.base[Gtk.StateType.NORMAL]
    else:
        bg = Gdk.color_parse(self._plugin.prefs['background'+str(tab_number)])

    palette = []
    if isinstance(fg,tuple):
        fg = fg[1]
    if isinstance(bg,tuple):
        bg = bg[1]
    _vteN.set_colors(fg, bg, palette)

fg我可以将和硬编码bg 为 Gdk.RGBA 值 和Gdk.RGBA(0.0, 0.0, 0.0, 1.0)Gdk.RGBA(1.0, 1.0, 1.0, 1.0)但似乎真正的问题是prefs未找到整个属性。我认为在第 2980 行左右它的定义如下:

class RCtrlPlugin(GObject.Object, Gedit.WindowActivatable):
    __gtype_name__ = "RCtrlPlugin"

    window = GObject.property(type=Gedit.Window)

    # The plugin preferences:
    prefs = {...[removed for simplicity]...}

除非用户在交互式点击窗口中更改首选项,否则首选项将设置为默认值,我可以显示该窗口,但 gedit 或 python3 或 ??? 似乎仍无法识别它。
有其他人成功运行过这个吗?

相关内容