在 Notepad++ 中添加选择下一个匹配项(如 Sublime Text 中的 Ctrl + D)

ben*_*ben 16 notepad++ text-editors

我正在寻找一种在开源 Notepad++ 中使用以下功能的方法。

在 SublimeText 中,如果按Ctrl+ D(mac: cmd+D我认为) 会发生这种情况:

  • 如果没有选择,则扩展光标位置以选择该单词。
  • 否则,该词的下一次出现也会被选中(无需打开搜索弹出窗口)。

然后,您可以选择多个可以更改的单词,并且您实际上已经看到了这些地方中的每一个(而不是全选)。

有什么办法可以在 Notepad++ 中完成(也许在 Autohotkey 的帮助下)?

可选:在崇高也可以撤销这些的Ctrl+ D“s的Ctrl+U和跳过与次数Ctrl+ K

Sha*_*ane 5

我从托尼·布里克斯(Tony Brix)的链接中提取了我认为最简单、最直接的方法(感谢托尼)。它使用 NppExec 插件运行片段来添加每个热键。

\n
\n

注意:有一个名为BetterMultiSelection的 NP++ 插件,但在继续之前我无法让它工作,可能值得一看。

\n
\n

将多选下一场比赛添加到 NP++ 的摘要步骤

\n
    \n
  1. 安装 NppExec 插件- 需要重新启动 NPP
  2. \n
  3. 为您想要的每个热键添加脚本/片段
  4. \n
  5. 为每个脚本创建菜单项- 需要重新启动 NPP
  6. \n
  7. 为菜单项指定组合键/热键
  8. \n
\n

第 1 步:安装 NppExec 插件

\n

该插件允许您直接通过控制台运行 N++ 脚本。对于那些不熟悉且赶时间的人,您可以通过选择安装 NppExec 插件。有关更多信息,请参阅NppExec github 自述文件

\n
    \n
  1. 菜单中的插件>插件管理
  2. \n
  3. 搜索NppExec
  4. \n
  5. \xe2\x98\x91勾选它的框并单击安装(您需要重新启动 Notepad++)
  6. \n
\n

第 2 步:为您想要的每个热键添加代码片段

\n

下面的脚本为 NP++ 提供了 VSCode 的多重编辑功能,并提供两个不同的快捷键,分别用于 addNext 和skip。

\n
\n

注意冲突: Ctrl +D已经被我使用了,所以你可能也需要注意这一点。消除冲突或相应地调整为您的环境提供的热键。对于键映射,请转到“设置” > “快捷方式映射器”

\n
\n

添加下一个 Ctrl+D

\n
NPP_CONSOLE 0\nsci_sendmsg 2690  // SCI_TARGETWHOLEDOCUMENT\nsci_sendmsg SCI_SETSEARCHFLAGS 0\nsci_sendmsg 2688  // SCI_MULTIPLESELECTADDNEXT\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

添加下一个全字 Shift+ Ctrl+D

\n
NPP_CONSOLE 0\nsci_sendmsg 2690  // SCI_TARGETWHOLEDOCUMENT\nsci_sendmsg SCI_SETSEARCHFLAGS SCFIND_WHOLEWORD\nsci_sendmsg 2688  // SCI_MULTIPLESELECTADDNEXT\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

添加每个 Shift+ Ctrl+L

\n
NPP_CONSOLE 0\nsci_sendmsg 2690  // SCI_TARGETWHOLEDOCUMENT\nsci_sendmsg SCI_GETSELECTIONEMPTY\nif $(MSG_RESULT) == 1 then\n  sci_sendmsg SCI_SETSEARCHFLAGS SCFIND_WHOLEWORD\nelse\n  sci_sendmsg SCI_SETSEARCHFLAGS 0\nendif\nsci_sendmsg 2689  // SCI_MULTIPLESELECTADDEACH\nsci_sendmsg 2689  // SCI_MULTIPLESELECTADDEACH\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

撤消添加下一个 Ctrl+U

\n
NPP_CONSOLE 0\nsci_sendmsg SCI_GETSELECTIONS\nset n ~ $(MSG_RESULT) - 1\nsci_sendmsg SCI_DROPSELECTIONN $(n)\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

跳过 Alt+ Ctrl+D

\n
NPP_CONSOLE 0\nsci_sendmsg SCI_SETSEARCHFLAGS SCFIND_NONE\nsci_sendmsg 2688  // SCI_MULTIPLESELECTADDNEXT\nsci_sendmsg SCI_GETSELECTIONS\nset n ~ $(MSG_RESULT) - 2\nsci_sendmsg SCI_DROPSELECTIONN $(n)\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

跳过整个单词 Alt+ Shift+ Ctrl+D

\n
NPP_CONSOLE 0\nsci_sendmsg SCI_SETSEARCHFLAGS SCFIND_NONE\nsci_sendmsg 2688  // SCI_MULTIPLESELECTADDNEXT\nsci_sendmsg SCI_GETSELECTIONS\nset n ~ $(MSG_RESULT) - 2\nsci_sendmsg SCI_DROPSELECTIONN $(n)\n
Run Code Online (Sandbox Code Playgroud)\n

脚本和评论来自 bitagoras 于 2020-05-04 - src

\n

从控制台保存上述脚本/片段

\n
    \n
  1. F6或者...从菜单插件> NppExec >执行
  2. \n
  3. 将上面的短 \xe2\x80\x9cscripts\xe2\x80\x9d 之一粘贴到出现的“执行”框中
  4. \n
  5. 可选但推荐)按“确定”按钮测试运行它
  6. \n
  7. 再按F6一次;之前的 \xe2\x80\x9cscript\xe2\x80\x9d 被保留并显示在框中
  8. \n
  9. “保存”并为其命名(每个脚本上方的建议)
  10. \n
  11. 确定
  12. \n
\n
\n

速度提示:您需要对要使用的每个脚本重复这些步骤。除非您想先测试一个,否则在进行下一步之前保存所有脚本会快得多。

\n
\n

上述步骤由用户 Alan Kilborn 在 2020-05-21 src总结

\n

第三步:为每个脚本制作菜单项

\n

命名并保存一个或多个脚本后,必须将它们添加到菜单中,以便可以分配组合键。

\n
\n

速度提示:在按“确定”之前对所有添加的脚本重复操作,以避免多次重新启动(除非您希望先测试一个)。

\n
\n
    \n
  1. 从菜单插件> NppExec >高级选项
  2. \n
  3. 在左下角,使用关联脚本下拉菜单选择脚本
  4. \n
  5. 单击添加/修改将其添加到左上角的菜单项列表中, 注意是否启用了 \xe2\x98\x91 放置在宏子菜单中(稍后您将需要它)。
  6. \n
\n

添加菜单项后...单击“确定”应用这些更改,然后重新启动 Notepad ++。

\n

第 4 步:为菜单项指定组合键/热键

\n
    \n
  1. 重新启动并从主菜单启动后,转到“设置”> “快捷方式映射器” > “插件命令”选项卡
  2. \n
  3. 按 NppExec 过滤并向下滚动,直到看到新的脚本名称。
  4. \n
  5. 单击您想要组合键的脚本,点击“修改”Ctrl ,然后选择、AltShift和所选键的适当组合。
  6. \n
\n

对您想要组合键的所有脚本重复“修改”过程。

\n

步骤 3 和 4,总结自 PeterJones - src的后续评论。

\n

回溯/如何撤销错误

\n

检查或确认已添加脚本的列表

\n
    \n
  • 如果启用了宏复选框,请转至“宏”菜单
  • \n
  • 如果禁用该复选框,请转至插件> NppExec
  • \n
\n

如果您犯了错误和/或决定删除脚本

\n
    \n
  1. 转到插件> NppExec >高级选项
  2. \n
  3. 然后选择要删除的项目,然后按删除按钮并退出菜单
  4. \n
  5. F6
  6. \n
  7. 从下拉列表中选择要删除的脚本
  8. \n
  9. 点击“保存”以选择删除选项...这不是一个直观的步骤
  10. \n
  11. 单击删除按钮
  12. \n
\n

上面根据 PeterJones 在原始线程后面的一两条评论

\n


Aya*_*yan 0

是的,Notepad++ 中有“选择并查找下一个”功能。

其关键组合是。

Ctrl+F3

并选择上一个出现的情况。

Ctrl+ Shift+F3

您可以在“搜索”菜单下查看。

  • 不幸的是,Ctrl + F3 只能选择所有相同的单词,但您无法同时编辑所有单词。 (3认同)
  • 感谢您的回答,但我特别要求您对这些单词进行多重选择(就像您在每个附加选择上按住 Ctrl 并双击一样)。示例:您有单词“float”,现在按下组合键,第二次出现的“float”将添加到多重选择中。然后,您可以输入“double”来替换两次出现的情况(并保持文件的其余部分不变) (2认同)