두 개의 gedit 플러그인이 충돌합니다. 바로 가기 키를 변경하거나 플러그인을 활성화 / 비활성화하는 방법


8

Gedit에는 Gnome의 Gedit Plugins 페이지 에서 두 가지 플러그인 이 있습니다.

그러나 둘 다 동일한 바로 가기 키를 사용합니다. Ctrl + PageUp 및 Ctrl + PageDown

가능한 두 가지 해결책을 볼 수 있으며 더 많은 것이있을 수 있습니다. (보통 :)

가장 좋은 해결책은 Multi-edit의 shorcut 키를 Shift + Ctrl + PageUp 및 Shift + Ctrl + PageDown ...으로 변경하는 것이지만 파이썬 지식이 거의 없으며 어떻게해야합니까?

가장 간단한 방법은 저에게 바로 가기 키를 통해 켜거나 끄는 것입니다. 다중 편집 기능을 켜거나 끄는 명령 (전체 스크립트는 아님)을 알고 있습니다 ... 기본적으로이 옵션을 사용하려면 Gedit 플러그인을 켜거나 끄는 명령이 필요합니다.

어느 쪽이든 또는 둘 다 (또는 다른) 해결책은 높이 평가 될 것입니다 ...

업데이트 : 명령 줄 명령 (vs, 메뉴 명령)
및 / 또는 Multi-edit의 python 스크립트에 대한 '수정'을 찾고 있습니다.

참고 : '바로 가기 편집'플러그인에는 다중 편집 플러그인이 표시되지 않습니다 ... (그렇게 할 수는 없습니다)

답변:


3

다중 편집 플러그인을 활성화 / 비활성화 하는 다음 파이썬 스크립트 ( download )를 작성했습니다 .

#!/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. 열고 시스템 → 환경 설정 → 키보드 단축키를 . 클릭 추가 넣어 python /home/<user>/toggle-multi-edit.py에 대한 명령 교체, <user>실제 사용자 이름.

    대체 텍스트


고마워 DoR .. 나 자신이 바빠서 내 배쉬 스크립트를 게시하기 위해 페이지로 돌아 왔습니다 :) .. 나는 당신의 파이썬 스크립트를보고 싶어합니다 ..하지만 지금은 내 것을 게시 할 것입니다. 휴식 .. 그것은 밤새도록되었습니다.) ...
Peter.O

그것은 좋습니다 ... 감사합니다 .... 파이썬은 내가 좋아하는 단순성을 가지고 있지만 불행히도 그것은 나에게 간단하지 않습니다 (아직) :) ... 나는 오랫동안 배쉬에 집중하여 더 오랫동안 노력할 것입니다. 그것에 대한 적절한 초기 이해 .. 그러면 파이썬에 대해 더 자세히 살펴볼 것입니다 ... (+1을 주려고했지만 2 시간 전에 표시했습니다 .. 나는 당신에게 +1을주었습니다. , 그리고 나는 대답을 잘 볼 수있을 때까지 그것을 철회했습니다 ... 이제 대답을 수정 / 편집 할 때까지 아무것도 바꿀 수 없다고 말합니다.
Peter.O

@ fred.bear 나는 당신이 지금 투표 할 수 있도록 작은 편집을했다;)
이사야

2

간단 해 :)

활성화

  1. 편집> 기본 설정

  2. 이제 플러그인 섹션을보십시오.

  3. 사용하려는 플러그인 이름 옆의 확인란을 선택하십시오.

  4. 이제 닫기 를 클릭 하여 Gedit를 닫은 다음 다시 시작할 수 있습니다

비활성화

  1. 편집> 기본 설정

  2. 이제 플러그인 섹션을보십시오.

  3. 사용하려는 플러그인 이름 옆의 확인란을 선택 취소하십시오.

  4. 이제 닫기 를 클릭 하여 Gedit를 닫은 다음 다시 시작할 수 있습니다


고마워 마이클 .. 나는 그것을 명확하게하지 않은 것 같습니다 .. 나는 모든 사람들이 내가하는 것처럼 "명령"이라는 단어를 보는 것으로 가정했지만 ... menu command) .. 나는 나의 질문을 암시해야한다. (+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"(in ~/.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)

한 줄을 다음과 같이 변경했습니다.

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.