Столкновение двух плагинов Gedit. Как изменить сочетания клавиш или включить / отключить плагин

Gedit имеет два плагина со страницы Gnome's Gedit Plugins , которые я особенно хочу ...

Однако они оба соперничают за одинаковые сочетания клавиш: Ctrl + PageUp и Ctrl + PageDown

Я вижу два возможных решения, и, возможно, есть больше ,,, (обычно есть :)

Лучшее решение может состоять в том, чтобы изменить сочетания клавиш в Multi-edit на Shift + Ctrl + PageUp и Shift + Ctrl + PageDown ... но я У меня очень мало знаний по Python, и как это избежать.

Самый простой способ (для меня) - просто включить / выключить их с помощью другой комбинации клавиш. Я знаю команду для включения / выключения функции Multi-edit (но не весь скрипт) ... По сути, для этой опции мне нужна команда для включения / выключения Gedit Plugin ..

Любое, или оба (или другие) решения приветствуются ...

ОБНОВЛЕНИЕ : Я ищу команду командной строки ( vs, команда меню),
и / или «исправление» для сценария Python Multi-edit.

Примечание: плагин «Edit Shortcuts» не показывает плагин Multi-edit ... (поэтому я не могу сделать это таким образом)

8
задан 27 March 2011 в 07:53

4 ответа

Я написал следующий скрипт 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)

Чтобы включить Multi-edit с помощью сочетания клавиш:

  1. Сохраните скрипт как toggle-multi-edit.py в вашей домашней папке.

  2. Откройте Система → Настройки → Сочетания клавиш . Нажмите , добавьте и поставьте python /home/<user>/toggle-multi-edit.py для команды , заменив <user> своим фактическим именем пользователя.

    alt text

0
ответ дан 27 March 2011 в 07:53

Это просто:)

Включение

  1. Правка> Настройки

  2. Теперь посмотрим на Раздел плагинов .

  3. Установите флажок рядом с названием плагина, который вы хотите включить.

  4. Теперь вы можете нажать Закрыть , чтобы закрыть Gedit, затем запустить его снова

Отключить

  1. Редактировать> Предпочтения

  2. Теперь рассмотрим раздел плагинов .

  3. Снимите флажок рядом с именем плагина, который вы хотите включить.

  4. Теперь вы можете нажать Закрыть , чтобы закрыть Gedit, затем запустить его снова

0
ответ дан 27 March 2011 в 07:53

После того, как я наконец нашел ссылку на плагины 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
ответ дан 27 March 2011 в 07:53

Я перебирал это с помощью плагинов regex и ipython , которые оба хотят работать на ctrl r . Я обнюхал в "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. Теперь поиск по регулярному выражению загружается на ctrl shfit f . Я вижу похожую строку в /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. ] в файле плагина.

0
ответ дан 27 March 2011 в 07:53

Другие вопросы по тегам:

Похожие вопросы: