Dos complementos gedit chocan. Cómo cambiar las teclas de acceso directo o habilitar / deshabilitar un complemento

8

Gedit tiene dos complementos de la página de complementos Gedome de Gnome que ambos particularmente quiero ...

Sin embargo, ambos compiten por las mismas teclas de acceso directo: Ctrl + AvPág y Ctrl + AvPág

Puedo ver dos posibles soluciones, y tal vez hay más, (generalmente hay :)

La mejor solución puede ser cambiar las teclas de shorcut en Multi-edit a Shift + Ctrl + PageUp y Shift + Ctrl + PageDown ... pero tengo muy poco conocimiento de Python, y cómo hacerlo se me escapa ...

El método más simple (para mí) es activarlos / desactivarlos mediante otra tecla de acceso directo. Conozco el comando para activar / desactivar la función de edición múltiple (pero no todo el script) ... Básicamente, para esta opción, necesito un comando para activar / desactivar un complemento de Gedit.

Cualquiera o ambas (u otras) soluciones serían apreciadas ...

ACTUALIZACIÓN : Estoy buscando un comando de línea de comandos (vs, un comando de menú),
y / o una 'corrección' para el script de Python de Multi-edit.

Nota: El complemento 'Editar accesos directos' no muestra el complemento de edición múltiple ... (por lo que no puedo hacerlo de esa manera)

Peter.O
fuente

Respuestas:

3

Escribí el siguiente script de Python ( descarga ) que habilita / deshabilita el complemento de edición múltiple:

#!/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 la edición múltiple con un atajo de teclado:

  1. Guarde el script como toggle-multi-edit.pyen su carpeta de inicio.

  2. Abra Sistema → Preferencias → Atajos de teclado . Haga clic en Agregar y coloque python /home/<user>/toggle-multi-edit.pyel comando , reemplazando <user>con su nombre de usuario real.

    texto alternativo

Isaias
fuente
Gracias DoR ... He estado ocupado yo mismo y volví a la página para publicar mi script de bash :) ... Estoy muy interesado en ver tu script de Python ... pero por ahora solo publicaré el mío ... (necesito un break..It ha estado toda la noche) ....
Peter.O
Está bien ... Gracias ... Python tiene una simplicidad que me gusta, pero desafortunadamente no es simple para mí (todavía):) ... Me mantendré enfocado en bash por un tiempo más, para tratar de obtener una comprensión inicial decente de eso ... luego buscaré más en Python ... (He tratado de darte un +1 pero dice que te marqué hace 2 horas ... Recuerdo que te di un +1 , luego me retracté hasta que pude ver bien la respuesta ... Ahora dice que no puedo cambiar nada hasta que la respuesta se modifique /
edite
@ fred.bear Hice una pequeña edición para que puedas votar ahora;)
Isaías
2

Es simple :)

Habilitando

  1. Editar> Preferencias

  2. Ahora mira la sección de Complementos .

  3. Seleccione la casilla de verificación junto al nombre del complemento que desea habilitar.

  4. Ahora puede hacer clic en Cerrar para cerrar Gedit, luego comenzar de nuevo

Deshabilitar

  1. Editar> Preferencias

  2. Ahora mira la sección de Complementos .

  3. Anule la selección de la casilla de verificación junto al nombre del complemento que desea habilitar.

  4. Ahora puede hacer clic en Cerrar para cerrar Gedit, luego comenzar de nuevo

megubyte
fuente
Gracias Michael. Parece que no lo he dejado claro. Supuse que todos ven la palabra "comando" como yo ... pero no lo hacen ... Me refería a un comando de línea de comandos (y usted pensó: comando de menú) ... Debo enmendar mi pregunta ... (+1 ... has presentado una respuesta muy clara)
Peter.O
2

Después de encontrar finalmente una referencia a los complementos de gedit, he creado un script bash ...

Debido a que este script es exclusivo de gedit, al agregarlo a través de las herramientas externas de gedit se localiza el alcance de su elección de tecla de acceso directo a gedit solamente. Estoy usando Ctrl + NumPad7 (porque está muy cerca de PageUp y 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
fuente
0

Estaba / estoy navegando por esto con plugins regex e ipython , que ambos quieren ejecutar ctrlr. Olfateé en "regexsearchinstance.py" (en ~/.local/share/gedit/plugins/regex_replace) y encontré esto:

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)

Cambié una línea a:

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

y sal de gedit. Ahora las búsquedas de expresiones regulares se cargan ctrlshfitf. Veo una línea comparable en /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)])

Así que si desea editar en realidad los plugins para que utilicen diferentes atajos por defecto, para husmear <Control>o <control>o add_actionen el archivo plugin.

Amanda
fuente