Dois plug-ins do gedit se chocam. Como alterar as teclas de atalho ou ativar / desativar um plugin

8

O Gedit tem dois plugins da página de plugins do Gedit do Gnome que eu particularmente quero ...

No entanto, ambos disputam as mesmas teclas de atalho: Ctrl + PageUp e Ctrl + PageDown

Eu posso ver duas soluções possíveis, e talvez haja mais ... (geralmente há :)

A melhor solução pode ser alterar as teclas de atalho em Multi-edição para Shift + Ctrl + PageUp e Shift + Ctrl + PageDown ... mas eu tenho muito pouco conhecimento de python e como fazê-lo me escapa ..

O método mais simples (para mim) é apenas ativá-los / desativá-los por meio de outra tecla de atalho. Eu sei o comando para ativar / desativar o recurso de edição múltipla (mas não o script inteiro) ... Basicamente, para esta opção, eu preciso de um comando para ativar / desativar um plug-in do Gedit.

Uma ou ambas as soluções (ou outras) seriam apreciadas ...

UPDATE : Estou procurando um comando linha de comando (vs, um comando de menu),
e / ou uma 'correção' para o script python do Multi-edit.

Observação: o plug-in "Editar atalhos" não mostra o plug-in de edição múltipla ... (por isso não posso fazer assim)

    
por Peter.O 21.01.2011 / 15:40

4 respostas

3

Eu escrevi o seguinte script python ( download ) que ativa / desativa o plug-in de edição múltipla:

#!/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)

Para alternar a edição múltipla com um atalho de teclado:

  1. Salve o script como toggle-multi-edit.py na sua pasta pessoal.

  2. Abra o Sistema → Preferências → Atalhos de Teclado . Clique em Adicionar e coloque python /home/<user>/toggle-multi-edit.py para o Comando , substituindo <user> pelo seu nome de usuário real.

por Isaiah 22.01.2011 / 00:59
2

É simples:)

Ativando

  1. Editar > Preferências

  2. Agora, veja a seção Plug-ins .

  3. Marque a caixa de seleção ao lado do nome do plug-in que você deseja ativar.

  4. Agora você pode clicar em Fechar para fechar o Gedit, depois iniciá-lo novamente

Desativando

  1. Editar > Preferências

  2. Agora, veja a seção Plug-ins .

  3. Desmarque a caixa de seleção ao lado do nome do plug-in que você deseja ativar.

  4. Agora você pode clicar em Fechar para fechar o Gedit, depois iniciá-lo novamente

por Micheal Harker 21.01.2011 / 17:26
2

Depois de finalmente encontrar uma referência aos plugins do gedit, eu criei um script bash ...

Como esse script é exclusivo do gedit, adicioná-lo via External Tools do gedit localiza o escopo da sua opção de tecla de atalho apenas para gedit. Estou usando Ctrl + NumPad7 (porque é muito próximo de PageUp e 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  
por Peter.O 22.01.2011 / 01:47
0

Eu estava navegando com regex e ipython plugins, que ambos querem rodar em ctrl r . Eu cheirei em "regexsearchinstance.py" (em ~/.local/share/gedit/plugins/regex_replace ) e achei isto:

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)

Mudei uma linha para:

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

e saia do gedit. Agora, as pesquisas de regex são carregadas em ctrl shfit f . Eu vejo uma linha comparável em /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)])

Portanto, se você quiser realmente editar os plugins para que eles usem atalhos diferentes por padrão, procure por <Control> ou <control> ou add_action no arquivo de plug-in.

    
por Amanda 11.02.2014 / 17:47