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

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

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

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

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>

答案1

直接回答:不。

能做到吗?能。
简单吗?能。
变成一个快捷方式吗?能

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

为什么?我们将使用 Python 脚本中的 HTML 标签,Select Tag and Contents通过将开始移动到第一个“>”之后,将结束移动到最后一个“<”之前,来调整 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()

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

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

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

如果您尝试选择块的“内容”部分,您会注意到行尾也被捕获。根据您的观点,这可以看作是优点还是缺点……

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

希望对您有帮助。玩得开心!

答案2

如果插件安装不打扰您,我强烈建议安装 HTML 标签,特别是如果您是 html 爱好者。

设置完成后,只需将光标放在开始或结束标签上,然后按 ctrl+shift+t

答案3

我会使用“折叠全部”(Alt-0)功能,这样每个段落都会显示为单独的一行。在 Word 中,我会<p>在每行的开头和</p>结尾添加,然后使用 Shift-Down 选择一行并按 Ctrl-V 粘贴 Word 中翻译的行来覆盖整行。完成后,展开全部(Alt-Shift-0)会展开所有内容。

答案4

我知道这个帖子已经有 4 年了,但由于我曾经处于同样的情况,所以我认为它仍然有用。

您还可以使用宏,它将自动为符号 > 和 < 之间的文本添加下划线。

要创建宏:

-单击标签< p >之前,使闪烁的条位于标签的左侧。

-在菜单中,单击“宏”-“开始录制”

-按 CRTL+F。找到符号 >,然后关闭窗口。标签的最后一部分将被加下划线。

-按下键盘上的右箭头(一次)。

- 按住 Shift,然后在键盘上按两次 End 按钮(如果激活了“自动换行”功能,则按两次;否则,只需按一次按钮)。

- 按住 Shift 键,同时按下左箭头,这样最后一个标签就不会有下划线。现在,只有标签之间的文本才会有下划线。

-单击停止录制,然后单击保存当前录制的宏。

我使用 CTRL+SHIFT+NUMBPAD+ 来激活宏。从一个部分转到另一个部分变得非常容易,只需粘贴新文本即可。

相关内容