Notepad ++:カーソルが行末/仮想スペースを超えましたか?


11

TL; DR-カーソルをテキスト行の終わりを越えて移動できるようにするには、どうすれば仮想スペースを有効にできますか?

長いバージョン -Notepad ++では、ウィンドウの右端を超えて伸びる長いテキスト行を(マウスを使用して)選択しようとすると、水平方向にスクロールし、マウスがカーソルを移動するのに十分なだけ上下する場合があります隣接する(通常ははるかに短い)行に移動し、カーソルをその隣接する行が終了する左にスナップします。これにより、ウィンドウが水平方向に左にスクロールして戻り、すばやく再調整して選択範囲のドラッグを終了することが難しくなります。

一部の(悲惨なほど少数ではありますが)テキストエディターには、「仮想スペース」、またはEOLを超えてカーソルを移動するオプションがあり、既存のテキスト/空白に制限されることなく、マウス/矢印を簡単に移動できます。

Notepad ++でこれを行うにはどうすればよいですか(ソースを自分でハッキングすることなく)?


1
行の先頭、Shift + Endを押しながら行全体を選択しましたか?それはあなたが望んでいたものと同じではないことを知っていますが、それは私がすることです。
Rob

1
あなたが尋ねるものではありませんが、問題は行の折り返しで解消されます。
Eroen

@Rob:これは通常、非常に長いコード行の特定の長いチャンクを選択しようとするときに問題になりますが、その行は他のはるかに短い行と混在しています。SHIFT + CTRL + RIGHTARROWを使用して、開始点から一度に1ワードずつ右方向にすばやく選択することもできます。実際にスペースで区切られていない場合、Notepad ++はピリオドや括弧などのワードブレーク文字の検出に非常に優れています。単語(長いオブジェクト参照など)例(javascript):someObjectName.subObject.property['index'](parameter)
acatalept '16

@エロエン:これを提案してくれてうれしい、私は長い間N ++でワードラップを使用していませんでした。これは、プログラムが大きなファイルでひどい目にあったためです...しかし、実際には私の大きな20kでも非常にうまく機能します行ファイル、および折り返された行にインデントを
並べる

回答:


14

ハックのようなもの(起動時にウィンドウメッセージをScintillaエディットコントロールに直接送信)ですが、うまく機能します。

  1. NppExecプラグインをインストールする

  2. プラグインに移動-> NppExec->実行

  3. 次のコードを入力します。

    // ensure console stays hidden
    NPP_CONSOLE 0
    
    // enable virtual spaces (cursor past end of line) outside column edit mode
    SCI_SENDMSG 2596 3 0
    
    // SCI_SENDMSG == send message to Scintilla edit control
    // 2596 == the message we're sending is SCI_SETVIRTUALSPACEOPTIONS
    // 3 == send the value (SCVS_RECTANGULARSELECTION | SCVS_USERACCESSIBLE)
    // the default value is 1 (just SCVS_RECTANGULARSELECTION) for
    //   virtual spaces in column select mode only
    // you can find these values by poking around the source code a bit, or
    // see http://www.scintilla.org/ScintillaDoc.html
    
  4. 下部の[ 保存 ]ボタンをクリックして、スクリプトに名前を付けます

  5. 次に、プラグイン-> NppExec->詳細オプションに移動します

  6. 右側の[Notepad ++の起動時にこのスクリプトを実行する]で、保存したスクリプト名を選択します

  7. [OK]をクリックし、Notepad ++を閉じて再度開いて、お楽しみください;)


2596他のシンチラコマンドについて記載されているようなメッセージコードはどこにありますか?Scintilla.hだけを突っついていますか?現在tortoisesvn.googlecode.com/svn/trunk/ext/scintilla/include/…にありますか?
n611x007

何が0入ってるのSCI_SENDMSG 2596 3 0
n611x007

@naxa:、メッセージコードの例Scintillaのドキュメントを参照してくださいscintilla.org/ScintillaDoc.html#SCI_SETVIRTUALSPACEOPTIONSを(私は3番目のパラメータは、これらのほとんどのために使用されていないが、0に設定するのではなく、省略されなければならないと考えている)
acatalept

「ハックのソート」-ハックとは、ソフトウェアが実行するはずのないことへのアクセスを意味します。これは私には機能のように見えます。
ナタリー・アダムス

@Nathan:セマンティクスは楽しいです;)基本的に、NppExecプラグインを使用してウィンドウメッセージを直接コントロールに送信することは一種のハックであり、Notepad ++が特に行うように設計されたものではありません(プラグインフレームワークを慎重に提供することを除いて、輪)
acatalept

0

管理者権限がない場合は、dllをダウンロードし、nppのプラグインのo / sディレクトリ/フォルダーにインストールして、NppExecをインストールします。nppを閉じてから再度開きます。

編集(+2年):これが変更されたかどうかはわかりませんが、NppExec フォルダーをnppのプラグインフォルダーに(元々は変更されていませんが)配置しました-NppExecサブフォルダーのdllを使用します。

また、バージョンが一致していることを確認してください(32ビットと64のどちらを使用しているかを思い出してください)。最新バージョン(2019)を使用している場合は、NPAの_PAバージョンが必要になる場合があります。

Notepad ++用のNppExecプラグインをインストールできないのはなぜですか?


Notepad ++で何かが変更されました。実行はもうありません。これに対する修正はありますか?
user215779 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.