6

Я делаю некоторые языковые переводы старого HTML-сайта, поэтому я просто вставляю новые переводы из документа Word в старые файлы.

Поэтому я должен выбрать все между тегами (h2 , p , li и т.д.), А затем вставить новый текст в - из файла 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>

5 ответов5

8

Если установка плагинов вас не беспокоит, я настоятельно рекомендую установить HTML-тег, особенно если вы любитель HTML.

После настройки просто нажмите Ctrl + Shift + T с курсором на открывающий или закрывающий тег

5

Прямой ответ :: Нет.

Можно ли это сделать? Да.
Просто? Да.
В один ярлык? да

Что нужно? N++ PythonScript и плагины HTML-тегов.

Зачем? Мы собираемся использовать тег HTML « Select Tag and Contents из сценария Python, который будет корректировать выбор, сделанный тегом 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, чтобы добавить сценарий в список «Пункты меню» (что позволит нам назначить ярлык). Перезапустите, затем используйте диалог Настройки-> Ярлык Mapper:: Плагины, добавьте Shift+ Alt+ T Shoftcut к новой записи для сценария, который вы только что создали. Перезапустите снова, чтобы записать новую запись быстрого доступа в конфигурацию N++.

Так что теперь (используя ваш образец текста), из строки, где вы хотели нажать ::

CTRL+T, чтобы перейти к другому тегу.
CTRL+Shift+T, чтобы выделить весь блок тегов.
Shift+Alt+T, чтобы выделить внутренний текст.

Если вы попытаетесь выбрать «контентную» часть блока, вы заметите, что окончания строк тоже фиксируются. Это можно рассматривать как плюс или минус в зависимости от вашей точки зрения ...

В качестве одной рекомендации, используйте SCI_SWAPMAINANCHORCARET чтобы позволить вам отрегулировать любой конец вашего выбора, используя обычные модификаторы движения и выбора. Вы можете установить его с помощью ярлыка на панели Scintilla (рядом с нижней частью). Я установил мой CTRL+Shift . это прекрасно работает, так как, когда уже изменено выделение, Shift обычно уже нажата.

Надеюсь, это поможет. Повеселись!

1

Эта задача выбора текста между тегами может быть выполнена без сценариев, но не в Notepad++.

Если вы устанавливаете редактор SynWrite, просто вызовите команду Search - Select current token, и текст между тегами будет выбран.

1

Я бы использовал функцию "Fold All" (Alt-0), чтобы каждый абзац отображался в виде отдельной строки. В Word я добавляю <p> в начале каждой строки и </p> в конце каждой строки, а затем перезаписываю полные строки, используя Shift-Down для выбора строки и Ctrl-V, чтобы вставить переведенную строку из Word. Развернуть все (Alt-Shift-0) разворачивает все, как только вы закончите.

0

Я знаю, что этому посту 4 года, но, поскольку я был в той же ситуации, я подумал, что он все еще может быть полезен.

Вы также можете использовать макрос, который будет автоматически подчеркивать текст, найденный между символом> и <.

Чтобы создать макрос:

-Нажмите перед тегом <p>, чтобы мигающая полоса находилась слева от тега.

-В меню выберите Макрос - Начать запись

-Нажмите CRTL+F. Найдите символ>, затем закройте окно. Эта последняя часть тега будет подчеркнута.

-Нажмите правую стрелку на клавиатуре (один раз).

- Удерживая клавишу Shift, затем на клавиатуре дважды нажмите кнопку «Завершить» (дважды, если включена функция переноса слов; в противном случае нажмите кнопку только один раз).

-При удержании Shift нажмите левую стрелку, чтобы последний тег не был подчеркнут. Теперь только текст между тегами будет подчеркнут.

-Нажмите «Остановить запись» и нажмите «Сохранить текущий записанный макрос».

Я использовал CTRL+SHIFT+NUMBPAD+, чтобы активировать макрос. Становится довольно легко переходить из одного раздела в другой и просто вставлять новый текст.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .