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


8

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

但是,他们两个都在争夺相同的快捷键:Ctrl + PageUp和Ctrl + PageDown

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

最好的解决方案可能是将“多编辑”中的快捷键更改为Shift + Ctrl + PageUp和Shift + Ctrl + PageDown ...,但是我对python的了解很少,而如何做到这一点使我逃脱了。

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

或两者(或其他)解决方案将不胜感激...

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

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

Answers:


3

我编写了以下python脚本(下载)来启用/禁用Multi-edit插件:

#!/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>您的实际用户名替换。

    替代文字


谢谢DoR ..我一直很忙,回到页面发布我的bash脚本:) ..我非常希望看到您的python脚本..但现在我只发布我的..(需要一个break..It的是一个通宵)...
Peter.O

很好...谢谢.... Python具有我喜欢的简单性,但不幸的是,它对我来说还不简单(但):)...我将继续专注于bash一段时间,以尝试获得体面的了解...。然后我将进一步研究python ...(我曾尝试给您+1,但它说我在2小时前标记了您。.我记得我确实给了您+1 ,那么我收回它,直到我能有一个很好看的答案...现在它说,直到答案被修改/编辑我不能改变什么..
Peter.O

@ fred.bear我做了一个小小的编辑,所以你现在可以投票;)
Isaiah

2

这很简单 :)

启用

  1. 编辑>首选项

  2. 现在查看“ 插件”部分。

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

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

禁用

  1. 编辑>首选项

  2. 现在查看“ 插件”部分。

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

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


谢谢迈克尔..我似乎还没有说清楚..我以为每个人都像我一样看到“命令”一词...但是他们没有...我的意思是命令行命令(并且您认为:菜单命令)..我必须修正我的问题..(+1 ..您提出了一个非常明确的答案)
Peter.O 2011年

2

最终找到对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  


0

我正在/ 正使用正要在上运行的regexipython插件进行导航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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.