Notepad++:光标超出行尾/虚拟空格了吗?

Notepad++:光标超出行尾/虚拟空格了吗?

总结- 如何启用虚拟空间以将光标移到文本行的末尾?

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

一些(尽管非常少)文本编辑器具有“虚拟空间”选项,或者将光标移到 EOL 之后,这样就可以更轻松地使用鼠标/箭头移动,而不受现有文本/空白的限制。

我怎样才能在 Notepad++ 中实现这一点(无需自己破解源代码)?

答案1

有点像黑客手段(在启动时直接向 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. 单击“确定”,关闭/重新打开 Notepad++,然后享受;)

答案2

在没有管理员权限的情况下,通过下载 dll 并安装到 npp 的插件 o/s 目录/文件夹来安装 NppExec。关闭/重新打开 npp。

编辑(+2 年):我不知道这是否有所改变,但我们现在(如果不是最初)把 NppExec文件夹进入 npp 的插件文件夹 - 使用 NppExec 子文件夹中的 dll。

还要确保版本匹配(提醒自己使用的是 32 位还是 64 位),如果您有最新版本(2019),则可能需要 _PA 版本的 NppExec。

为什么我无法安装 Notepad++ 的 NppExec 插件?

相关内容