Pythonのメモ帳++のスクリプト

はじめに



多くの人がNotepad ++を知っていると思います。これは、標準のWindows Notepadの「高度な」代替として機能する便利な無料のユーティリティです。 他のテキストエディターと同様に、メモ帳++では、ロジックの複雑さのためにマクロとして記述できない反復アクションを自動化する必要がある場合があります。 幸いなことに、この問題を解決するために、組み込みのVBを使用するために、 メモ帳++からWordなどに切り替える必要はありません。



Notepad ++のプラグインには、JavaScript、Lua、PHP、Pythonなどの異なる言語でNotepad ++のスクリプトを作成する機能を実装する拡張機能があります。 私の問題を解決するために私がやめることにしたのは、後者についてでした。



問題の声明



次のタスクに直面していると仮定します(人生から取られた)。



1.テキストの選択されたフラグメント(何も選択されていない場合は、ドキュメント全体):

2.スクリプトを開始するときに、リクエストを発行する必要があります-どの番号から文字「@」の番号付けを開始します。 デフォルトでは(「Enter」を押して)、番号付けは1から始まります。数値以外の値が入力されると、番号が入力されるまでクエリウィンドウが再表示されます。



3.テキストの選択したフラグメント(または選択がない場合はドキュメント全体)に「@」記号がない場合、対応するエラーメッセージが表示されます。



4.スクリプトを実行する機能があるはずです。

解決策



最初に、 Python ScriptというNotepad ++用のプラグインをインストールする必要があります。 これを使用すると、編集可能なテキストを使用した操作の実行、ファイルのオープン/クローズ、タブの切り替え、 メモ帳++メニューコマンドの実行などができます。 -一言で言えば、 メモ帳++で一般的に行えるほとんどすべてのことです



次に、メニューから「 Notepad ++ プラグイン」->「Pythonスクリプト」->「新規スクリプト 」を選択して、スクリプトを作成します。



# -*- coding: utf-8 -*- #  Notepad++,       "@",     #    text = editor.getSelText() isSelection = True #    ,      if not text: isSelection = False text = editor.getText() #    "@",     import re occurrencesCount = len(re.findall('^@', text, flags=re.MULTILINE)) #        "@"   ,     if occurrencesCount == 0: notepad.messageBox('      1  "@"   ', '   ', MESSAGEBOXFLAGS.ICONEXCLAMATION) #   "@" ,  else: countStartFrom = '' #     ,      while not countStartFrom.isdigit(): countStartFrom = notepad.prompt(' ,          "@":', '   "@"', '1') if countStartFrom == None: break if countStartFrom != None: #    text = re.sub('\r\n\\s*\r\n', '\r\n', text) #         / text = re.sub('\r\n\s*$|^\s*\r\n', '', text, flags=re.MULTILINE) #  countStartFrom      countStartFrom = int(countStartFrom) # ,   "@"        def addNumber(matchobj): global countStartFrom countStartFrom += 1 return '@'+str(countStartFrom-1) #     "@",     text = re.sub('^@', addNumber, text, flags=re.MULTILINE) #       if isSelection: editor.replaceSel(text) else: editor.setText(text)
      
      





スクリプトを「Empty Lines And Count」と呼ぶと、メニューPlugins-> Python Script-> Scripts-> Empty Lines And Countから実行できます。 ボタンをツールバーに追加し、キーボードショートカットで起動できるようにするには、プラグイン設定(プラグイン-> Pythonスクリプト->設定 )で、作成したスクリプトを選択し、メニューとツールバーに追加します。 現在、 Notepad ++を再起動すると、対応するボタンがツールバーに表示されます。



[ プラグインコマンド]セクションの[設定]-> [ショートカットマッパー ]メニューで、スクリプトにキーボードショートカットを割り当てることができます



スクリプトをメモ帳++コンテキストメニューに追加するには、必要な場所(たとえば、最初の要素の前)で、 設定用のxml-fileに次の行を追加する必要があります( Settings-> Edit Popup ContextMenu )。



 <Item PluginEntryName="Python Script" PluginCommandItemName="Empty Lines And Count" ItemNameAs="      '@'"/> <Item id="0"/>
      
      









以上です。 複雑なロジックを使用した日常的なアクションでも、ワンクリックで実行できます。



便利なリンク:




All Articles