Como posso selecionar tudo entre tags no Notepad ++?

6

Estou fazendo algumas traduções langauge de um site HTML antigo, por isso estou apenas colando as novas traduções de um documento do Word nos arquivos antigos.

Portanto, eu tenho que selecionar tudo entre as tags ( h2 , p , li , etc.) e depois colar o novo texto em - a partir de um arquivo do Word. Para selecionar tudo entre p tags eu tenho que selecionar um lado da tag interna, então segure Shift , então selecione o próximo lado para destacar tudo ... meus dedos estão ficando realmente cansados, e Eu tenho 40 arquivos (páginas) no total com 3 idiomas para fazer.

Existe um atalho no Notepad ++ para selecionar tudo entre duas tags (excluindo as tags; como quando você clica duas vezes em uma palavra, ele seleciona a palavra inteira).

<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>
    
por cantaffordretail 14.10.2012 / 00:16

5 respostas

5

Resposta direta: não.

Pode ser feito? Sim.
Simplesmente? Sim.
Em um único atalho? Sim

O que é necessário? Plugins N ++ PythonScript e HTML Tag.

Por quê? Usaremos o Select Tag and Contents da tag HTML de um script python que ajustará a seleção feita pela tag HTML movendo a inicialização para logo após a primeira '>' e o fim até pouco antes do último '<'.

Após instalar o plugin N ++ PythonScript, crie um novo script com este código:

# 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()

Após criar o script, use o diálogo de configuração do PythonScript para adicionar o script à lista 'Itens de menu' (o que nos permitirá atribuir o atalho). Reinicie, então use o diálogo Settings- > Shortcut Mapper :: Plugins, adicione um shftcut Shift + Alt + T à nova entrada para o roteiro que você acabou de criar. Reinicie novamente para escrever a nova entrada de atalho na configuração do N ++.

Então agora (usando seu texto de exemplo), da linha em que você queria clicar:

CTRL + T para pular para o outro tag.
CTRL + Shift + T para selecionar todo o bloco de tags.
Shift + Alt + T para selecionar o texto interno.

Se você tentar selecionar a parte "conteúdo" do bloco, perceberá que os finais de linha também são capturados. Isso pode ser visto como mais ou menos, dependendo do seu ponto de vista ...

Uma recomendação, use SCI_SWAPMAINANCHORCARET para permitir que você ajuste o final de sua seleção usando os modificadores de movimento e seleção normais. Você pode configurá-lo a partir do mapeador de atalhos no painel Scintilla (próximo à parte inferior). Eu configurei o meu para CTRL + Deslocamento . que funciona muito bem, pois ao modificar uma seleção Shift geralmente já pressionado.

Espero que isso ajude. Divirta-se!

    
por 19.10.2012 / 16:39
8

Se a instalação do plugin não te incomodar, eu recomendo instalar o HTML Tag, especialmente se você é um comedor de html.

Após a configuração, basta ctrl + shift + t com o cursor na tag de abertura ou fechamento

    
por 04.09.2014 / 17:11
1

Eu usaria o recurso "Fold All" (Alt-0) para que cada parágrafo seja exibido como uma linha separada. No Word eu adicionaria <p> no início de cada linha e </p> no final de cada linha e, em seguida, substituir linhas completas usando Shift-Down para selecionar uma linha e Ctrl-V para colar a linha traduzida do Word. Desdobre tudo (Alt-Shift-0) desdobra tudo depois de terminar.

    
por 14.10.2012 / 09:52
1

Esta tarefa de selecionar texto entre tags pode ser realizada sem scripts, mas não no Notepad ++.

Se você instalar o editor de Sincrituras , basta chamar o comando Pesquisa - Selecionar token atual e texto entre tags é selecionado.

    
por 28.10.2012 / 12:29
0

Eu sei que este post tem 4 anos, mas como eu estava na mesma situação, achei que ainda poderia ser útil.

Você também pode usar uma macro, que automaticamente sublinhará o texto encontrado entre o símbolo > e <.

Para criar a macro:

-Clique antes da tag < p & gt ;, de modo que a barra piscante fica no lado esquerdo da tag.

-No menu, clique em Macro - Iniciar Gravação

-Pressione CRTL + F. Encontre o símbolo > e feche a janela. Esta última parte da tag será sublinhada.

Pressione a seta para a direita no teclado (uma vez).

-Hold Shift, depois no teclado, pressione o botão End duas vezes (duas vezes se a função Word wrap estiver ativada; caso contrário, pressione o botão apenas uma vez).

- Enquanto pressiona a tecla Shift, pressione a seta para a esquerda para que a última tag não seja sublinhada. Agora, apenas o texto entre as tags será sublinhado.

-Clique em Parar Gravação e clique em Salvar Macro Gravada Atual.

Eu estava usando CTRL + SHIFT + NUMBPAD + para ativar a macro. É muito fácil ir de uma seção para outra e simplesmente colar seu novo texto.

    
por 23.02.2017 / 22:47