如何在 Notepad++ 中选择标签之间的所有内容?

can*_*van 6 windows keyboard-shortcuts notepad++

我正在对旧 HTML 网站进行一些语言翻译,因此我只是将 Word 文档中的新翻译粘贴到旧文件中。

所以我必须选择标签(h2pli等)之间的所有内容,然后从 Word 文件中粘贴新文本。要选择p标签之间的所有内容,我必须选择内部标签的一侧,然后按住Shift,然后选择下一侧以突出显示所有内容......我的手指真的很累了,我总共有 40 个文件(页面),包含 3 种语言去做。

Notepad++ 中是否有快捷方式来选择两个标签之间的所有内容(不包括标签;就像双击一个单词时它会选择整个单词一样)。

<p>This is some English that needs to be translated here. 
I want to just click in this area to select all of this 
text between these two paragraph tags.</p>
<p>This would be another block of translation to do</p>
<ul>
    <li>I want to click here and select everything between the li tags</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

小智 9

如果插件安装不打扰您,我强烈建议您安装 HTML Tag,特别是如果您是 html 食客。

设置后,只需 ctrl+shift+t 将光标放在开始或结束标记上


The*_*ell 5

直接回答:不。

可以制作吗?是的。
简单地?是的。
成单一捷径?是的

需要什么?N++ PythonScript 和 HTML 标签插件。

为什么?我们将使用Select Tag and ContentsPython 脚本中的 HTML 标签,该脚本将通过将开头移动到第一个 '>' 之后,将结尾移动到最后一个 '<' 之前来调整 HTML 标记所做的选择。

安装 N++ PythonScript 插件后,使用以下代码创建一个新脚本:

# Reduce selection to omit the outer most tags selected by the 'HTML Tag' plugin.

from Npp import *

def omit_tag( args ):
    editor.clearCallbacks()
    SelText = editor.getSelText()

    if SelText:
        orig_Start = editor.getSelectionStart()
        new_Start = orig_Start + SelText.find(">")

        orig_End = editor.getSelectionEnd()
        new_End = orig_Start + SelText.rfind("<")

        if new_Start > orig_Start and new_End < orig_End:
            editor.setSel( new_Start + 1, new_End )

def main():
    editor.callback( omit_tag, [SCINTILLANOTIFICATION.UPDATEUI] )
    notepad.runMenuCommand("HTML Tag", "Select Tag and Contents")

main()
Run Code Online (Sandbox Code Playgroud)

创建脚本后,使用 PythonScript 配置对话框将脚本添加到“菜单项”列表(这将允许我们分配快捷方式)。重新启动,然后使用设置- >快捷键映射::插件对话框中,添加一个Shift+ Alt+ Tshoftcut为您刚才创建的脚本的新条目。再次重新启动以写出新的快捷方式条目 N++ 配置。

所以现在(使用您的示例文本),从您要单击的行开始:

CTRL+T跳转到另一个标签。
CTRL+ Shift+T选择整个标签块。
Shift+ Alt+T选择内部文本。

如果您尝试选择块的“内容”部分,您会注意到行尾也被捕获。根据您的观点,这可以被视为加号或减号...

一个建议,利用SCI_SWAPMAINANCHORCARET允许您使用正常移动和选择修改器调整选择的任一端。您可以从 Scintilla 面板(靠近底部)上的快捷方式映射器进行设置。我已经将我的设置为CTRL+ Shift.,这很好用,因为在修改选择时Shift通常已经按下了。

希望这有帮助。玩得开心!