Zwei gedit-Plugins prallen aufeinander. So ändern Sie Tastenkombinationen oder aktivieren / deaktivieren ein Plugin

8

Gedit hat zwei Plugins von Gnomes Gedit Plugins-Seite, die ich beide besonders möchte ...

Beide wetteifern jedoch um dieselben Tastenkombinationen: Strg + PageUp und Strg + PageDown

Ich kann zwei mögliche Lösungen sehen, und vielleicht gibt es mehr ,,, (es gibt normalerweise :)

Die beste Lösung könnte darin bestehen, die Shorcut-Tasten in Multi-Edit in Shift + Ctrl + PageUp und Shift + Ctrl + PageDown zu ändern ... aber ich habe nur sehr wenig Python-Kenntnisse, und wie das geht, entgeht mir.

Die einfachste Methode (für mich) besteht darin, sie einfach über eine andere Tastenkombination ein- oder auszuschalten. Ich kenne den Befehl zum Ein- und Ausschalten der Multi-Edit-Funktion (aber nicht des gesamten Skripts) ... Grundsätzlich benötige ich für diese Option einen Befehl zum Ein- und Ausschalten eines Gedit-Plugins.

Entweder oder beide (oder andere) Lösungen wären willkommen ...

UPDATE : Ich suche nach einem Befehlszeilenbefehl (vs, einem Menübefehl)
und / oder einem 'Fix' für das Python-Skript von Multi-Edit.

Hinweis: Das Plugin 'Edit Shortcuts' zeigt das Multi-Edit-Plugin nicht an ... (also kann ich es nicht so machen)

Peter.O
quelle

Antworten:

3

Ich habe das folgende Python-Skript ( Download ) geschrieben, das das Multi-Edit-Plugin aktiviert / deaktiviert:

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

So schalten Sie Multi-Edit mit einer Tastenkombination um:

  1. Speichern Sie das Skript wie toggle-multi-edit.pyin Ihrem Home-Ordner.

  2. Öffnen Sie System → Einstellungen → Tastaturkürzel . Klicken Sie auf Hinzufügen und geben Sie python /home/<user>/toggle-multi-edit.pyden Befehl ein und ersetzen Sie ihn <user>durch Ihren tatsächlichen Benutzernamen.

    Alt-Text

Jesaja
quelle
Danke DoR .. Ich war selbst beschäftigt und bin auf die Seite zurückgekehrt, um mein Bash-Skript zu veröffentlichen :) .. Ich bin sehr gespannt auf dein Python-Skript .. aber im Moment werde ich nur meins veröffentlichen .. (brauche eine Pause ... Es war eine Nacht.) ...
Peter.O
Es ist gut ... Danke ... Python hat eine Einfachheit, die ich mag, aber leider ist es mir (noch) nicht einfach :) ... Ich werde mich noch eine Weile auf Bash konzentrieren, um zu versuchen, es zu bekommen Ein anständiges anfängliches Verständnis davon. Dann werde ich mich weiter mit Python befassen. (Ich habe versucht, Ihnen eine +1 zu geben, aber es heißt, ich habe Sie vor 2 Stunden markiert. Ich erinnere mich, dass ich Ihnen eine +1 gegeben habe , dann habe ich es zurückgezogen, bis ich mir die Antwort
genauer
@ fred.bear Ich habe eine winzige Änderung vorgenommen, damit Sie jetzt abstimmen können;)
Jesaja
2

Es ist einfach :)

Aktivieren

  1. Bearbeiten> Einstellungen

  2. Schauen Sie sich nun den Abschnitt Plugins an .

  3. Aktivieren Sie das Kontrollkästchen neben dem Namen des Plugins, das Sie aktivieren möchten.

  4. Sie können jetzt auf Schließen klicken , um Gedit zu schließen, und es dann erneut starten

Deaktivieren

  1. Bearbeiten> Einstellungen

  2. Schauen Sie sich nun den Abschnitt Plugins an .

  3. Deaktivieren Sie das Kontrollkästchen neben dem Namen des Plugins, das Sie aktivieren möchten.

  4. Sie können jetzt auf Schließen klicken , um Gedit zu schließen, und es dann erneut starten

Megubyte
quelle
Danke Michael. Ich habe es anscheinend nicht klar gemacht. Ich nahm an, dass jeder das Wort "Befehl" so sieht wie ich ... aber sie tun es nicht. Ich meinte einen Befehlszeilenbefehl (und Sie dachten: Menübefehl) .. Ich muss meine Frage ammende .. (+1 .. Sie haben eine sehr klare Antwort gegeben)
Peter.O
2

Nachdem ich endlich einen Verweis auf die Plugins von gedit gefunden habe, habe ich ein Bash-Skript zusammengestellt ...

Da dieses Skript nur für gedit verfügbar ist, wird durch Hinzufügen über die externen Tools von gedit der Bereich Ihrer Auswahl der Tastenkombination nur für gedit lokalisiert. Ich verwende Strg + NumPad7 (da es sehr nahe an PageUp und PageDown liegt).

#!/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
quelle
0

Ich habe / navigiere dies mit Regex- und Ipython- Plugins, auf denen beide ausgeführt werden möchten ctrlr. Ich habe in "regexsearchinstance.py" (in ~/.local/share/gedit/plugins/regex_replace) herumgeschnüffelt und Folgendes gefunden:

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)

Ich habe eine Zeile geändert in:

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

und gedit beenden. Jetzt werden Regex-Suchvorgänge geladen ctrlshfitf. Ich sehe eine vergleichbare Zeile in /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)])

Also , wenn Sie wollen , um tatsächlich die Plugins so bearbeiten, dass sie standardmäßig verschiedene Verknüpfungen verwenden, herumschnüffeln für <Control>oder <control>oder add_actionin der Plugin - Datei.

Amanda
quelle