2つのgeditプラグインが衝突します。ショートカットキーを変更する方法、またはプラグインを有効/無効にする方法


8

Geditには、GnomeのGedit Pluginsページにある2つのプラグインがあり、どちらも特に必要です...

ただし、どちらも同じショートカットキーを競合します:Ctrl + PageUpおよびCtrl + PageDown

私は2つの可能な解決策を見ることができます、そしておそらくもっとあります、、(通常あります:)

最善の解決策は、マルチ編集のショートカットキーをShift + Ctrl + PageUpとShift + Ctrl + PageDownに変更することです...しかし、私はPythonの知識がほとんどなく、それを行う方法は私をエスケープします。

最も簡単な方法(私にとって)は、別のショートカットキーを使用してオン/オフを切り替えることです。マルチ編集機能のオン/オフを切り替えるコマンドを知っています(ただし、スクリプト全体ではありません)...基本的に、このオプションでは、Geditプラグインのオン/オフを切り替えるコマンドが必要です。

どちらか、または両方(またはその他)の解決策が評価されます...

更新コマンドラインコマンド(vs、メニューコマンド)、
および/またはマルチ編集のpythonスクリプトの「修正」を探しています。

注: 'ショートカットの編集'プラグインはマルチ編集プラグインを表示しません...(そのようにはできません)

回答:


3

マルチ編集プラグインを有効/無効にする次のpythonスクリプト(ダウンロード)を作成しました。

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

キーボードショートカットでマルチ編集を切り替えるには:

  1. スクリプトをtoggle-multi-edit.pyホームフォルダーに保存します。

  2. [ システム]→[設定]→[キーボードショートカット]を開きます。[ Add and put] python /home/<user>/toggle-multi-edit.pyをクリックしてコマンドを入力<user>し、実際のユーザー名に置き換えます。

    代替テキスト


DoRに感謝します。私は忙しくて、bashスクリプトを投稿するためにページに戻ってきました:) ..私はあなたのpythonスクリプトを見ることに非常に熱心ですが、今のところ私だけを投稿します。ブレイク..それは徹夜でした。)...
Peter.O

それは良いです...ありがとう.... Pythonは私が好きなシンプルさを持っていますが、残念ながらそれは私には(まだ)簡単ではありません:)...取得しようとするために、しばらくbashに集中し続けますまともなそれの最初の理解..それから私はさらにパイソンを調べます...(私はあなたに+1を与えようとしましたが、私は2時間前にあなたをマークしたと言います。私はあなたに+1を与えたことを覚えています、それから私は答えをよく見ることができるまでそれを撤回しました...今、それは答えが修正/編集されるまで何も変更できないと言います..
Peter.O

@ fred.bear小さな編集を行ったので、今すぐ投票できます;)
イザヤ

2

それは簡単です :)

有効にする

  1. 編集>設定

  2. 次にプラグインのセクションを見てください。

  3. 有効にするプラグインの名前の横にあるチェックボックスをオンにします。

  4. [ 閉じる]をクリックしてGeditを閉じてから、もう一度起動してください

無効にする

  1. 編集>設定

  2. 次にプラグインのセクションを見てください。

  3. 有効にするプラグインの名前の横にあるチェックボックスをオフにします。

  4. [ 閉じる]をクリックしてGeditを閉じてから、もう一度起動してください


おかげでマイケル..私はそれを明確にしていないようです..私がそうであるように、誰もが「コマンド」という単語を見ると思いました...しかし、彼らはそうではありません...私はコマンドラインコマンドを意味しました(そしてあなたは考えました:メニューコマンド)..私は私の質問を修正する必要があります..(+1 ..あなたは非常に明確な答えを提示しました)
Peter.O

2

ようやくgeditのプラグインへの参照を見つけた後、bashスクリプトをまとめました...

このスクリプトはgedit専用であるため、geditの外部ツールを介して追加すると、選択したショートカットキーの範囲がgeditのみにローカライズされます。Ctrl+ NumPad7を使用しています(PageUpと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

私は/ 両方で実行したい正規表現ipythonプラグインでこれをナビゲートしていました/ですctrlr。「regexsearchinstance.py」(の中で~/.local/share/gedit/plugins/regex_replace)を嗅いでみて、これを見つけました:

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)

私は1行を次のように変更しました:

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

そしてgeditを終了します。正規表現検索はにロードされctrlshfitfます。私には同等の行が表示され/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)])

ですから、実際に彼らは、デフォルトで別のショートカットを使用するようにプラグインを編集したい場合は、のために周りの盗聴<Control>または<control>またはadd_actionプラグインファイルに。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.