13

notepad ++の使用を妨げてきた問題の解決策が見つかりませんでした。

テキストをダブルクリックしてそのテキストと他の類似のテキストを強調表示すると、camelCaseまたはunder_score単語がうまく機能しますが、hyphen-words-are-clickedこれが単一の単語として扱われず、「-」の間のセグメントのみが強調表示されます。

質問:ハイフンでつながれた単語が 1 つの単語として扱われるように、notepad++ をカスタマイズするにはどうすればよいですか? または、これを行うテキストエディタを知っている人はいますか?

これを見ましたが、実装方法がわかりません: http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Word_Customisation

これは本当に役に立ちました:記録されたマクロは Notepad++ のどこに保存されていますか?

4

7 に答える 7

2

Lisp/Scheme ソース コードを Notepad++ で編集しているときに、同じ問題に遭遇しました。

解決策は、基盤となる Scintilla ライブラリ (SciLexer.dll) にあります。

コードをハックして SciLexer.dll を再構築します。 次のコードに「-」
が追加されていることに注意してください

CharClassify.cxx

void CharClassify::SetDefaultCharClasses(bool includeWordClass) {
    // Initialize all char classes to default values
    for (int ch = 0; ch < 256; ch++) {
        if (ch == '\r' || ch == '\n')
            charClass[ch] = ccNewLine;
        else if (ch < 0x20 || ch == ' ')
            charClass[ch] = ccSpace;
        else if (includeWordClass && (ch >= 0x80 || isalnum(ch) || ch == '_' || ch == '-'))
            charClass[ch] = ccWord;
        else
            charClass[ch] = ccPunctuation;
    }
}

または、ScintillaDoc.htmlで言及されている「スマートな」方法

SCI_SETWORDCHARS(<unused>, const char *characters)

Scintilla には、単語を操作する関数がいくつかあります。単語は、特定の文字セットからの連続した文字列として定義されています。このメッセージは、どのキャラクターがそのセットのメンバーであるかを定義します。文字セットは、この関数を処理する前にデフォルト値に設定されます。たとえば、文字セットで「_」を許可しない場合は、次のように使用します: SCI_SETWORDCHARS(0,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");

于 2015-02-21T16:42:13.067 に答える
1

http://sourceforge.net/p/notepad-plus/discussion/1290590/thread/39ba5cd8/

Npp_Exec プラグインをインストールし、このスレッドから文字列をコピーして、Npp が単語の一部と見なす記号を追加します。

于 2014-02-20T14:36:15.383 に答える
1

Notepad ++のそのオプションはまだわかりません。そうする他のテキストエディタについて尋ねたので、Sublime Textを使用することをお勧めします。これは、多くのスマートな機能を備えた非常に優れたテキスト エディターです。きっと気に入っていただけるはずです。デフォルトでは、ハイフンでつながれた単語を 1 つの単語として扱いません。しかし、そのための設定をカスタマイズするのは簡単すぎます。に行く'Preference-> Setting-Default'だけで、次の設定が見つかります。

"word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",

そこから、ハイフンを削除するだけで完了です。

于 2014-02-20T16:29:06.437 に答える
0

回避策は次のとおりです。

  • 検索ウィンドウで、検索するテキストをスペースに設定します

  • ショートカット マッパー (メイン メニュー セクション) で、[次を検索] を Ctrl+Right に、[前を検索] を Ctrl+Left に割り当てます。

これで、検索テキストがスペースのみである限り、効果的に唯一の区切り文字になります。カンマやピリオドなど、他の区切り文字が必要な場合は、[検索テキスト] を [ ,.] に設定します。

于 2016-04-14T05:08:21.497 に答える