web-dev-qa-db-ja.com

Notepad ++ですべての特殊/アクセント付き文字を同等の通常の文字に置き換える

すべての特殊/アクセント付き文字/文字(Â/Ôなど)を自動的に検索して、同等の通常の文字/文字(A)に置き換える方法を見つけようとしています。/O)(Notepad ++)。

ToolFxを使用してみましたが、機能しませんでした。

7
RabienRose

上記の提案は優れていますが、Notepad ++と "Notepad ++ Python Script"の間の問題のため、現時点では機能しません。数か月後、Notepad ++プラグインマネージャーは、エディターで動作しない古いPythonスクリプトバージョンをダウンロードします。これを修正するには:

  1. Notepad ++を終了します
  2. SourceForgeから互換性のあるバージョン をダウンロードします。
  3. ダウンロードしたインストーラーをダブルクリックして実行します。新しいWindowsでは、管理者権限に切り替えるように求められます。
  4. インストールプロセスの最初に、正しいインストールドライブを選択してください。 Notepad ++インストールディスクを正しく検出しません。 Notepad ++が別のディスクにある場合でも、デフォルトではC:\にインストールされるため、再インストールする必要がありました。
  5. ウィザードの指示に従います。
  6. インストールプロセスが終了したら、Notepad ++を(再)起動します。次に、プラグインメニューに移動して開きます。その中に新しい「Pythonスクリプト」アイテムが表示されます。表示される場合は、正しいバージョンを強制的にインストールしています。プラグインマネージャーを開いて[インストール済み]タブに移動し、Pythonプラグインのバージョン1.0.8(現時点)を示すエントリを探すことで、再確認することもできます。
  7. ほぼ完了です。プラグイン=> Pythonスクリプト=>コンソールメニューの表示に移動します。 Notepad ++の下部にペインが表示されます。 [〜#〜] must [〜#〜]は、次のようなプロンプトを表示します。

    _Python 2.7.6-notepad++ r2 (default, Apr 21 2014, 19:26:54) [MSC v.1600 32 bit (Intel)]
    Initialisation took 156ms
    Ready.
    _

さまざまなバージョン番号は現在のものですが、もちろん時間の経過とともに変更されます。下部のペインに、例外が発生したことを示す例外が表示されるか、(および)空白のままである場合は、間違ったPythonプラグインバージョンがインストールされています。

それでは、スクリプトを正しい方法で適用しましょう。

  1. 2つの新しい空白のタブ/ファイルを開きます。
  2. 最初にアクセント付きテキストを貼り付けます。
  3. 2番目のタブを右クリックして、[他のビューに移動]メニューを選択します。 Notepad ++ウィンドウが分割されます。
  4. 上で説明したようにPythonスクリプトコンソールを開きます(プラグイン=> Pythonスクリプト=>コンソールメニューを表示します)。
  5. Pythonペインの下部にあるコンソール行に移動します。先頭に ">>>"マークが付いています。
  6. _from Npp import *_と入力し、Enterキーを押します(これからは、コマンドの最後で常にEnterキーを押すと想定します)。
  7. 同じ入力テキストに_import unicodedata_と入力します。
  8. アクセント付きテキストを含むタブをクリック(選択)します(これは重要です!)。
  9. Pythonプロンプトに次のコマンドを一度に1行ずつ入力し、各行の後でEnterキーを押します。

    _eText = editor.getText()
    uText = unicode(eText, "UTF-8")
    nText = unicodedata.normalize( "NFKD", uText )
    _

Python "本当にテキストを入力した":eText = editor.getText()(+ Enterキー)を入力した後、次のように入力します:_print eText_ + Enter。アクセント付きのテキストがPythonコンソールの出力ペインにダンプされているのがわかります。

  1. 空のタブをクリック(選択)します(これは重要です!)。
  2. 通常のPythonコンソールコマンド入力テキストボックスにeditor.addText( nText.encode('ASCII', 'ignore') )と入力します。
  3. 空のタブには、変換されたアクセントのないテキストが入力されます。ステップを見逃しやすく(特にタブをクリックする)、最初からやり直す必要があるため、このToDoリストに注意深く従ってください。
4
Dario Fumagalli

あなたが見ているものによって利用可能であると制限されないでください。 pythonはN ++内から利用できます。つまり、すばやくSO検索[python] [unicode] remove accents明らかに この非常に投票された質問 まさにそれを扱っています!

N ++で簡単にテストして、どのように機能するかを確認できます。

  1. 2つの新しいバッファ/タブ/ファイルまたはそれらを呼び出すのが好きなものを開きます。
  2. これらのラテン文字をコピーして貼り付けます 拡張UTF-8文字 最初の文字に。
  3. 2番目のタブを右クリックし、[他のビューに移動]をクリックします。
  4. Pythonスクリプトコンソールを開き、次のコマンドを試してください::

    nppインポートから*
    unicodedataをインポートする
    <<ビュー1のタブを選択します。>>
    eText = editor.getText()<<ビュー2のタブを選択します。>>
    uText = unicode(eText、 "UTF-8")
    nText = unicodedata.normalize( "NFKD"、uText)
    editor.addText(nText.encode( 'ASCII'、 'ignore'))

少し見回すと、アクセントを削除する方法はたくさんあるようですが、問題はどちらが最適かということです。そして今、あなたはあなたのテキストでこれらの解決策を「試す」ことがいかに簡単であるかを見ることができるので、先に進んでそれを試してみてください。特定のメソッドが気に入ったら、(プラグインメニューを使用して)スクリプトとして追加すると、必要なときにいつでもそこに表示されます。

楽しんで!


ところで-Pythonスクリプトがインストールされていない場合は、プラグイン->プラグインマネージャーを使用してインストールできます。

1
Thell

脚本

first および second の回答からのスクリプトのバリエーションを次に示します。これを使用して、選択したテキストを変換するためのショートカットキーを割り当てることができます。

class convert_char01:
    import unicodedata
    eText = editor.getSelText()
    uText = unicode(eText, encoding='utf-8', errors='ignore')
    nText = unicodedata.normalize( "NFKD", uText )
    editor.replaceSel(nText)

ショートカット

スクリプトを実行するためのショートカットキーを作成する方法は次のとおりです。

  • Python NPP用のスクリプトをインストールします。
  • 新しいスクリプトを作成します:
    • プラグイン>Pythonスクリプト>新しいスクリプトに移動します。
    • 「convert_char.py」と呼びます。
  • このスクリプトをメニューに追加します:
    • プラグイン>Pythonスクリプト>構成に移動し、ユーザースクリプトをクリックし、追加ボタンをクリックしてメニュー項目に追加します。
    • また、Initialisation[〜#〜] atstartup [〜#〜]に設定して、処理を高速化することをお勧めします。
  • 新しいショートカットホットキーを作成します:
    • 新しいメニュー項目をショートカットマッパーに表示するには、おそらく最初にNPPを再起動する必要があります。
    • 設定>ショートカットマッパー...の下に新しいショートカットアクセラレータを作成します。

これで、文字列が強調表示されたら、その画面の文字をすばやく変換して、コンソールを使用せずにスクリプトを実行できます。

参考文献

1
ClearBlueSky85