Notepad++:光标越过行尾/虚拟空间?

aca*_*ept 13 notepad++

TL;DR - 如何启用虚拟空间将光标移动到文本行的末尾?

长版- 在 Notepad++ 中,当尝试选择(使用鼠标)一长行文本超出窗口的右边缘,导致它水平滚动时,我的鼠标有时会稍微向上或向下移动到足以移动光标到相邻(通常更短)的行,导致光标向左对齐,该相邻行结束;这反过来将窗口水平滚动回左侧,从而难以快速重新调整并完成拖出我的选择。

一些(虽然少得可怜)文本编辑器有一个“虚拟空间”选项,或者光标越过 EOL,以便更容易地使用鼠标/箭头,而不受现有文本/空白的限制。

我怎样才能在 Notepad++ 中做到这一点(不自己破解源代码)?

aca*_*ept 15

有点像黑客(在启动时直接向 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
    
    Run Code Online (Sandbox Code Playgroud)
  4. 单击底部的保存按钮,并为脚本命名

  5. 现在转到插件 -> NppExec -> 高级选项

  6. 在右侧的“在 Notepad++ 启动时执行此脚本”下,选择您刚刚保存的脚本名称

  7. 单击确定,关闭/重新打开 Notepad++,然后享受 ;)