Dua bentrokan plugin gedit. Cara mengubah tombol pintas, atau mengaktifkan / menonaktifkan plugin

8

Gedit memiliki dua plugin dari halaman Gedit Plugins Gnome yang saya berdua ingin ...

Namun keduanya bersaing untuk tombol pintasan yang sama: Ctrl + PageUp dan Ctrl + PageDown

Saya dapat melihat dua solusi yang mungkin, dan mungkin ada lebih banyak ,,, (biasanya ada :)

Solusi terbaik mungkin dengan mengubah kunci shorcut di Multi-edit ke Shift + Ctrl + PageUp dan Shift + Ctrl + PageDown ... tapi saya punya sedikit pengetahuan python, dan bagaimana melakukannya lolos dari saya ..

Metode paling sederhana (bagi saya) adalah dengan hanya mengaktifkan / menonaktifkannya melalui tombol pintas lain. Saya tahu perintah untuk mengaktifkan / menonaktifkan fitur Multi-edit (tetapi tidak seluruh skrip) ... Pada dasarnya, untuk opsi ini, saya memerlukan perintah untuk mengaktifkan / menonaktifkan Plugin Gedit ..

Salah satu, atau keduanya (, atau lainnya) solusi akan dihargai ...

UPDATE : Saya mencari perintah baris perintah (vs, perintah menu),
dan / atau 'perbaikan' untuk skrip python multi-edit.

Catatan: Plugin 'Edit Shortcuts' tidak menampilkan plugin Multi-edit ... (jadi saya tidak bisa melakukannya dengan cara seperti itu)

Peter.O
sumber

Jawaban:

3

Saya menulis skrip python berikut ( unduh ) yang mengaktifkan / menonaktifkan 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)

Untuk mengaktifkan Multi-edit dengan pintasan keyboard:

  1. Simpan skrip seperti toggle-multi-edit.pydi folder rumah Anda.

  2. Buka Sistem → Preferensi → Pintasan Keyboard . Klik Tambah dan masukkan python /home/<user>/toggle-multi-edit.pyuntuk Perintah , ganti <user>dengan nama pengguna Anda yang sebenarnya.

    teks alternatif

Yesaya
sumber
Terima kasih DoR .. Saya sudah sibuk sendiri dan kembali ke halaman untuk memposting skrip bash saya :) .. Saya sangat tertarik untuk melihat skrip python Anda .. tetapi untuk sekarang saya hanya akan memposting milik saya .. (perlu istirahat .. Sudah malam semua.) ...
Peter.O
Ini bagus ... Terima kasih .... Python memiliki kesederhanaan yang saya suka, tapi sayangnya itu tidak mudah bagi saya (belum):) ... Saya akan tetap fokus pada bash untuk sementara waktu lebih lama, untuk mencoba mendapatkan pemahaman awal yang layak tentang itu .. maka saya akan melihat lebih jauh ke dalam python ... (Saya sudah mencoba memberi Anda +1 tetapi ia mengatakan saya menandai Anda 2 jam yang lalu .. Saya ingat saya memang memberi Anda +1 , lalu saya mencabutnya sampai saya dapat melihat baik-baik jawabannya ... Sekarang dikatakan saya tidak dapat mengubah apa pun sampai jawabannya diubah / diedit ..
Peter.O
@ fred.bear Saya membuat edit kecil sehingga Anda dapat memilih sekarang;)
Yesaya
2

Itu mudah :)

Mengaktifkan

  1. Edit> Preferensi

  2. Sekarang lihat bagian Plugins .

  3. Pilih kotak centang di sebelah nama plugin yang ingin Anda aktifkan.

  4. Anda sekarang dapat Klik Tutup untuk menutup Gedit, Kemudian mulai lagi

Menonaktifkan

  1. Edit> Preferensi

  2. Sekarang lihat bagian Plugins .

  3. Hapus centang pada kotak di sebelah nama plugin yang ingin Anda aktifkan.

  4. Anda sekarang dapat Klik Tutup untuk menutup Gedit, Kemudian mulai lagi

megubyte
sumber
Terima kasih Michael .. Sepertinya saya belum menjelaskannya .. Saya berasumsi bahwa semua orang melihat kata "perintah" seperti yang saya lakukan ... tetapi mereka tidak ... Saya maksudkan perintah baris perintah (dan Anda berpikir: perintah menu) .. Saya harus mengubah pertanyaan saya .. (+1 .. Anda telah memberikan jawaban yang sangat jelas)
Peter.O
2

Setelah akhirnya menemukan referensi ke plugin gedit, saya telah membuat skrip bash ...

Karena skrip ini eksklusif untuk gedit, menambahkannya melalui Alat Eksternal gedit melokalisasi ruang lingkup pilihan tombol pintas Anda ke gedit saja .. Saya menggunakan Ctrl + NumPad7 (karena sangat dekat dengan PageUp dan 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
sumber
0

Saya sedang menavigasi ini dengan regex dan ipython plugins, yang ingin dijalankan keduanya ctrlr. Saya mengendus-endus di "regexsearchinstance.py" (dalam ~/.local/share/gedit/plugins/regex_replace) dan menemukan ini:

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)

Saya mengubah satu baris menjadi:

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

dan berhenti gedit. Sekarang regex pencarian dimuat ctrlshfitf. Saya melihat garis yang sebanding di /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)])

Jadi jika Anda ingin benar-benar mengedit plugin sehingga mereka menggunakan cara pintas yang berbeda secara default, mengendus sekitar untuk <Control>atau <control>atau add_actiondi file plugin.

Amanda
sumber