Deux plugins gedit s'affrontent. Comment changer les touches de raccourci ou activer / désactiver un plugin

8

Gedit a deux plugins de la page Gedit Plugins de Gnome que je veux particulièrement tous les deux ...

Cependant, ils se disputent tous les deux les mêmes touches de raccourci: Ctrl + PageUp et Ctrl + PageDown

Je peux voir deux solutions possibles, et il y en a peut-être plus ,,, (il y a généralement :)

La meilleure solution peut être de changer les touches de raccourci dans Multi-edit en Shift + Ctrl + PageUp et Shift + Ctrl + PageDown ... mais j'ai très peu de connaissances en python, et comment m'échapper m'échappe ..

La méthode la plus simple (pour moi) consiste simplement à les activer / désactiver via une autre touche de raccourci. Je connais la commande pour activer / désactiver la fonction d'édition multiple (mais pas le script entier) ... Fondamentalement, pour cette option, j'ai besoin d'une commande pour activer / désactiver un plugin Gedit.

Soit, soit les deux (ou d'autres) solutions seraient appréciées ...

MISE À JOUR : Je recherche une commande de ligne de commande (vs, une commande de menu),
et / ou un «correctif» pour le script python de Multi-edit.

Remarque: le plugin "Modifier les raccourcis" n'affiche pas le plugin Multi-edit ... (donc je ne peux pas le faire de cette façon)

Peter.O
la source

Réponses:

3

J'ai écrit le script python suivant ( téléchargement ) qui active / désactive le plugin 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)

Pour basculer la modification multiple avec un raccourci clavier:

  1. Enregistrez le script comme toggle-multi-edit.pydans votre dossier personnel.

  2. Ouvrez Système → Préférences → Raccourcis clavier . Cliquez sur Ajouter et mettre python /home/<user>/toggle-multi-edit.pypour la commande , en remplaçant <user>par votre nom d'utilisateur réel.

    texte alternatif

Isaïe
la source
Merci DoR .. Je suis moi-même occupé et suis revenu sur la page pour poster mon script bash :) .. Je suis très impatient de voir votre script python .. mais pour l'instant je vais juste poster le mien .. (besoin une pause ... Ça a été une nuit blanche.) ...
Peter.O
C'est bon ... Merci .... Python a une simplicité que j'aime, mais malheureusement ce n'est pas simple pour moi (encore):) ... Je vais rester concentré sur bash encore un peu, pour essayer d'obtenir une compréhension intime décente de celui-ci .. alors je vais regarder plus loin dans le python ... (J'ai essayé de vous donner un +1 mais il dit que je vous ai marqué il y a 2 heures .. Je me souviens que je vous ai donné un +1 , puis je l'ai rétracté jusqu'à ce que je puisse avoir un bon aperçu de la réponse ... Maintenant, il dit que je ne peux rien changer jusqu'à ce que la réponse soit modifiée / éditée ..
Peter.O
@ fred.bear J'ai fait une petite modification pour que vous puissiez voter maintenant;)
Isaiah
2

C'est simple :)

Activation

  1. Édition> Préférences

  2. Regardez maintenant la section Plugins .

  3. Cochez la case à côté du nom du plugin que vous souhaitez activer.

  4. Vous pouvez maintenant cliquer sur Fermer pour fermer Gedit, puis le redémarrer

Désactiver

  1. Édition> Préférences

  2. Regardez maintenant la section Plugins .

  3. Décochez la case à côté du nom du plugin que vous souhaitez activer.

  4. Vous pouvez maintenant cliquer sur Fermer pour fermer Gedit, puis le redémarrer

mégubyte
la source
Merci Michael .. Il me semble que je n'ai pas été clair .. Je suppose que tout le monde voit le mot "commande" comme je le fais ... mais ils ne le font pas ... Je voulais dire une commande en ligne de commande (et vous pensiez: commande de menu) .. Je dois ammende ma question .. (+1 .. vous avez présenté une réponse très claire)
Peter.O
2

Après avoir finalement trouvé une référence aux plugins de gedit, j'ai mis en place un script bash ...

Parce que ce script est exclusif à gedit, l'ajouter via les outils externes de gedit localise la portée de votre choix de touche de raccourci pour gedit uniquement .. J'utilise Ctrl + NumPad7 (car il est très proche de PageUp et 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  

Peter.O
la source
0

J'étais / suis en train de naviguer avec des plugins regex et ipython , que les deux veulent exécuter ctrlr. J'ai reniflé dans "regexsearchinstance.py" (en ~/.local/share/gedit/plugins/regex_replace) et j'ai trouvé ceci:

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)

J'ai changé une ligne en:

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

et quittez gedit. Maintenant, les recherches regex se chargent ctrlshfitf. Je vois une ligne comparable dans /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)])

Donc , si vous voulez modifier réellement les plug - ins de sorte qu'ils utilisent des raccourcis par défaut, pour renifler <Control>ou <control>ou add_actiondans le fichier de plug - in.

Amanda
la source