Scontro tra due plugin gedit. Come modificare i tasti di scelta rapida o abilitare / disabilitare un plug-in


8

Gedit ha due plugin dalla pagina dei plugin Gedit di Gnome che entrambi voglio particolarmente ...

Tuttavia, entrambi competono per gli stessi tasti di scelta rapida: Ctrl + PageUp e Ctrl + PageDown

Vedo due possibili soluzioni, e forse ce ne sono altre ,,, (di solito c'è :)

La soluzione migliore potrebbe essere quella di cambiare i tasti shorcut in Modifica multipla in Maiusc + Ctrl + PageUp e Maiusc + Ctrl + PageDown ... ma ho pochissime conoscenze su Python e come evitarmi.

Il metodo più semplice (per me) è semplicemente attivarli / disattivarli tramite un altro tasto di scelta rapida. Conosco il comando per attivare / disattivare la funzione di modifica multipla (ma non l'intero script) ... Fondamentalmente, per questa opzione, ho bisogno di un comando per attivare / disattivare un plug-in Gedit.

O, o entrambe (, o altre) soluzioni sarebbero apprezzate ...

AGGIORNAMENTO : Sto cercando un comando da riga di comando (vs, un comando di menu)
e / o una 'correzione' per lo script python di Multi-edit.

Nota: il plug-in "Modifica scorciatoie" non mostra il plug-in Modifica multipla ... (quindi non posso farlo in quel modo)

Risposte:


3

Ho scritto il seguente script Python ( download ) che abilita / disabilita il plug-in 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)

Per attivare la modifica multipla con una scorciatoia da tastiera:

  1. Salva lo script come toggle-multi-edit.pynella tua cartella home.

  2. Apri Sistema → Preferenze → Tasti di scelta rapida . Fai clic su Aggiungi e inserisci python /home/<user>/toggle-multi-edit.pyper il comando , sostituendolo <user>con il tuo nome utente effettivo.

    testo alternativo


Grazie DoR .. Sono stato impegnato da solo e sono tornato alla pagina per pubblicare il mio script bash :) .. Sono molto entusiasta di vedere il tuo script Python .. ma per ora posterò solo il mio .. (bisogno una pausa ... è stata una notte intera.) ...
Peter

Va bene ... Grazie .... Python ha una semplicità che mi piace, ma purtroppo non è semplice per me (ancora):) ... Rimarrò concentrato sulla bash per un po 'di più, per cercare di ottenere una decente comprensione iniziale di esso .. poi esaminerò ulteriormente il pitone ... (Ho provato a darti un +1 ma dice che ti ho segnato 2 ore fa .. Ricordo che ti ho dato un +1 , poi l'ho ritratta fino a quando non ho potuto dare una buona occhiata alla risposta ... Ora dice che non posso cambiare nulla fino a quando la risposta non viene modificata / modificata ..
Peter.O

@ fred.bear Ho fatto una piccola modifica in modo da poter votare adesso;)
Isaiah

2

È semplice :)

Abilitare

  1. Modifica> Preferenze

  2. Ora guarda la sezione Plugin .

  3. Seleziona la casella di controllo accanto al nome del plug-in che desideri abilitare.

  4. Ora puoi fare clic su Chiudi per chiudere Gedit, quindi riavviarlo

Disattivazione

  1. Modifica> Preferenze

  2. Ora guarda la sezione Plugin .

  3. Deseleziona la casella di controllo accanto al nome del plug-in che desideri abilitare.

  4. Ora puoi fare clic su Chiudi per chiudere Gedit, quindi riavviarlo


Grazie Michael .. Mi sembra di non averlo chiarito .. Ho pensato che tutti vedessero la parola "comando" come faccio io ... ma loro no ... intendevo un comando da riga di comando (e tu pensavi: menu command) .. Devo ammendere la mia domanda .. (+1 .. hai presentato una risposta molto chiara)
Peter.O

2

Dopo aver finalmente trovato un riferimento ai plugin di gedit, ho messo insieme uno script bash ...

Poiché questo script è esclusivo di gedit, aggiungendolo tramite gli strumenti esterni di gedit si localizza l'ambito della scelta del tasto di scelta rapida per gedit solo .. Sto usando Ctrl + NumPad7 (perché è molto vicino a 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  


0

Stavo / sto navigando con plug-in regex e ipython , che entrambi vogliono eseguire ctrlr. Ho sniffato in "regexsearchinstance.py" (in ~/.local/share/gedit/plugins/regex_replace) e ho trovato questo:

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)

Ho cambiato una riga in:

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

ed esci da gedit. Ora le ricerche regex si caricano ctrlshfitf. Vedo una linea comparabile 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)])

Quindi, se si desidera effettivamente modificare i plugin in modo che utilizzino scorciatoie diverse per impostazione predefinita, annusare per <Control>o <control>o add_actionnel file del plugin.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.