两个 gedit 插件发生冲突。如何更改快捷键或启用/禁用插件

两个 gedit 插件发生冲突。如何更改快捷键或启用/禁用插件

Gedit 有两个插件Gnome 的 Gedit 插件页面我特别想要...

然而它们都争夺相同的快捷键:Ctrl+PageUp 和 Ctrl+PageDown

我可以看到两种可能的解决方案,也许还有更多......(通常都有:)

最好的解决方案可能是将多编辑中的快捷键更改为 Shift+Ctrl+PageUp 和 Shift+Ctrl+PageDown...但是我对 Python 了解甚少,不知道该怎么做。

对我来说,最简单的方法就是通过另一个快捷键来打开/关闭它们。我知道打开/关闭多编辑功能的命令(但不知道整个脚本)...基本上,对于这个选项,我需要一个命令来打开/关闭 Gedit 插件。

无论是其中一种,还是两种(或其他)解决方案都将受到赞赏......

更新:我正在寻找命令行命令(与菜单命令相比),
和/或 Multi-edit 的 python 脚本的“修复”。

注意:“编辑快捷方式”插件不显示多编辑插件...(所以我不能那样做)

答案1

我编写了以下 Python 脚本(下载)启用/禁用多编辑插件:

#!/usr/env/python

import re
import commands

active_plugins = commands.getoutput("gconftool --get /apps/gedit-2/plugins/active-plugins")

r1 = re.compile(r'multi_edit')

if r1.search(active_plugins):
    # Disable multi-edit plugin
    active_plugins = re.sub("multi_edit,|,multi_edit","", active_plugins)

else:
    # Enable multi-edit plugin
    active_plugins = re.sub("]",",multi_edit]", active_plugins)
    
commands.getoutput("gconftool --set --type=list --list-type=string /apps/gedit-2/plugins/active-plugins "+active_plugins)

要使用键盘快捷键切换多重编辑:

  1. 将脚本保存为toggle-multi-edit.py您的主文件夹。

  2. 打开系统 → 偏好设置 → 键盘快捷键。 点击添加python /home/<user>/toggle-multi-edit.py命令,替换<user>为您的实际用户名。

    替代文本

答案2

这很简单 :)

启用

  1. 编辑 > 首选项

  2. 现在看看插件部分。

  3. 选中要启用的插件名称旁边的复选框。

  4. 您现在可以点击关闭关闭 Gedit,然后重新启动

禁用

  1. 编辑 > 首选项

  2. 现在看看插件部分。

  3. 取消选中要启用的插件名称旁边的复选框。

  4. 您现在可以点击关闭关闭 Gedit,然后重新启动

答案3

最终找到对 gedit 插件的参考后,我编写了一个 bash 脚本……

因为这个脚本是 gedit 独有的,所以通过 gedit 的外部工具添加它会将您选择的快捷键的范围局限于 gedit。我使用的是 Ctrl+NumPad7(因为它非常接近 PageUp 和 PageDown)...

#!/bin/bash
# Toggle gedit plugin ControlYourTabs  ON/OFF, with inverse switching for   
# Multi-Edit's "Columns Always Available" feature, which uses same shortcuts 
# ==========================================================================
cytab=controlyourtabs
plugins=$(gconftool-2 --get /apps/gedit-2/plugins/active-plugins)
#
if [[ "$plugins" =~ ^\[(.+,)*$cytab(,.+)*\]$ ]] ; then
    #
    # "Control Your Tabs" found in list... Disable it
    #  and enable "Multi Edit - Columns Always Available"  
    #
    if   [[ "$plugins" =~ ^.+\,$cytab(,.+)*\]$ ]] ; then plugins=${plugins/,${cytab}/}
    elif [[ "$plugins" =~   ^\[$cytab\,.+$     ]] ; then plugins=${plugins/${cytab},/}
    elif [[ "$plugins" =~   ^\[$cytab\]$       ]] ; then plugins=[]
    else echo "Logic Error in one of the regex patterns"; exit 1
    fi
    multi=true
else
    # "Control Your Tabs" NOT found in list... Enable it
    #  and disable "Multi Edit - Columns Always Available"  
    #
    plugins=${plugins%]},$cytab]
    multi=false
fi
#
gconftool-2 --set /apps/gedit-2/plugins/active-plugins --type=list --list-type=string "$plugins"
gconftool-2 --set /apps/gedit-2/plugins/multi_edit/columns_always_avail --type bool  $multi  

答案4

我曾经/现在正在使用正则表达式伊帕特里克插件,两者都想在 上运行ctrlr。我在“regexsearchinstance.py”(在 中~/.local/share/gedit/plugins/regex_replace)中嗅探了一下,发现了以下内容:

def create_menu_item(self):
        """
        Create a menu item in the "Tools" menu.
        """
        action = gtk.Action("RegexSearch", 
                _("Regular expression..."), 
                _("Search using regular expressions"), None)
        action.connect("activate", self.on_open_regex_dialog)

        action_group = gtk.ActionGroup("RegexSearchActions")
        action_group.add_action_with_accel(action, "<control>r")

        manager = self._window.get_ui_manager()
        manager.insert_action_group(action_group, -1)
        manager.add_ui_from_string(ui_str)

我把其中一行改成:

action_group.add_action_with_accel(action, "<control><shift>f")

然后退出 gedit。现在正则表达式搜索加载在 上ctrlshfitf。我在 中看到了类似的一行/usr/lib/gedit/plugins/ipython.py

self._action_group.add_actions([('IPython', None,
        _('Run in IPython'), '<Control>r', _('Clear the document'),
        self.send_to_ipython)])

因此,如果您想要实际编辑插件,以便它们默认使用不同的快捷方式,请在插件文件中寻找<Control>或。<control>add_action

相关内容