Como formatar automaticamente / recuar XML / HTML no Notepad ++

628

Existe uma maneira de reentrar um bloco de código? Estou procurando algo semelhante ao Ctrl+ Shift+ Fno Eclipse (Auto-Format / Recuo).

Para ser claro,

  • Eu já sei como formatar XML fora do Notepad ++ (o Eclipse funciona bem, como mencionado), por isso não preciso de muitos links para outras ferramentas de formatação XML.
  • Estou trabalhando especificamente com XML e HTML.
  • Idealmente, há uma combinação de teclas tão conveniente quanto a do Eclipse, para que eu não precise interromper meu fluxo de trabalho.

Eu já sei sobre o NppAutoIndent - ele não funcionará, pois estou trabalhando com XML, HTML e CSS.

SBoss
fonte

Respostas:

838

Desde que atualizei para 6.3.2, eu uso XML Tools.

  • instale XML Tools através do administrador de plug-ins.
  • use o atalho Ctrl+ Alt+ Shift+ B( ou menu → Plugins → Ferramentas XML → Pretty Print)

Nas versões anteriores: menu → TextFX → HTML organizado → organizado: Reindent XML.

remipod
fonte
11
Instalei a versão 5.9.8 e adicionei o TextFX como um plug-in. Plugins -> Gerenciador de Plugins -> Mostrar Gerenciador de Plugins. Selecione TextFX e instale. Após o reinício do npp, o menu 'TextFS' deve estar visível.
Remipod 5/03/12
19
Cuidado com o erro libtidy.dll ausente nas versões recentes ao instalar o plug-in HTMLTidy.
Amos M. Carpenter
11
XML Tools formatará XHTML, mas não HTML. Tente formatar este: <form><input><input><input><input><input></form>. Seu código precisa estar nesse formato para funcionar, o que será um <form><input /><input /><input /><input /><input /></form>
diferencial
1
Encontre a opção Formatar no Menu: Extensions-> Ferramentas XML -> A cópia consideravelmente (com quebras de linha)
fl0w
1
Tenha muito cuidado com isso, ele irá transformar <div> </div> em <div /> se os div estiverem vazios. Essa pode ser uma mudança inédita para navegadores da Web que processam estilos CSS.
Timothy Gonzalez
53

Instale o plugin Tidy2. Eu tenho o Notepad ++ v6.2.2 e o Tidy2 funciona bem até agora.

Dima
fonte
5
Em segundo lugar, o Tidy2 fez o trabalho para a marcação HTML e faz um bom trabalho.
DWils
2
Eu terceiro isso. Ferramentas XML não funcionou para mim e não podia fez funcionar com TextFX
Christian Vielma
4
Obrigado .. 'XML Tools' não funcionou em certos arquivos e é isso que funcionou para mim.
Subhashi
4
Cuidado: determinadas entidades de caracteres HTML são substituídas por seus caracteres unicode quando você arruma. Isso independentemente da configuração do Tidy2 ou da codificação do documento. Por exemplo, "& # 8217;" antes de arrumar se torna "'" (aspas simples "inteligentes") após arrumar. Isso tornou o Tidy2 inutilizável para mim. O projeto não foi atualizado desde 2012.
trebormf
nenhuma opção para usar guias em vez de espaços para recuo mata isso para mim.
cori
36

Para quem não sabe, o npp tem muito suporte de plugins e outros projetos. Você pode baixar esses plugins do SourceForge .

insira a descrição da imagem aqui

Você precisa XML Toolsformatar seu texto em n ++

Depois de baixar XML Tools..

Sair do Notepad ++

Vá para C:\Program File\Notepad++.... Sua pasta instalada no N ++.

  1. Coloque os arquivos abaixo das ferramentas xml que você baixou na pasta raiz do npp copy replace

insira a descrição da imagem aqui

  1. Vá para a ..\Pluginssubpasta e coloque o arquivo baixado abaixo

insira a descrição da imagem aqui

Reinicie e aproveite !!!

Ctrl+ Alt+ Shft+ Bpara formatar.

Algum cara de Java
fonte
4
Parece que não tenho um gerenciador de plugins no meu - eu tenho o bloco de notas ++ 7.3.3.
Owl #
14

É a terceira vez que instalo o Windows e o npp e, depois de algum tempo, percebo que a função arrumada não funciona mais. Então, procuro uma solução no google, venho a este tópico e, com a ajuda de mais alguns, finalmente o conserto. Vou colocar um resumo de todas as minhas ações de uma vez por todas.

  1. Instale o plugin TextFX: Plugins -> Plugin Manager -> Mostrar Plugin Manager. Selecione Caracteres do TextFX e instale. Após o reinício do npp, o menu 'TextFX' deve estar visível. (créditos: @remipod).

  2. Instale o libtidy.dll colando a pasta Config de um pacote npp antigo: Siga as instruções nesta resposta .

  3. Depois de ter uma pasta Config no seu destino de instalação mais recente do npp (normalmente C: \ Arquivos de Programas (x86) \ Notepad ++ \ plugins), o npp precisa ter acesso de gravação a essa pasta. Clique com o botão direito do mouse na pasta Config -> Propriedades -> guia Segurança -> selecione Usuários, clique em Editar -> marque Controle total para permitir acesso de leitura / gravação. Observe que você precisa de privilégios de administrador para fazer isso.

  4. Reinicie o npp e verifique se o TextFX -> TextFX HTML Tidy -> Tidy: XML reindent funciona.

Vladimir Grigorov
fonte
Se você estiver usando a configuração "allowAppDataPlugins" (permitindo plugins por usuário), você pode fazer isso colocando o arrumado pasta da etapa 2 no seu diretório de plugins de usuário e pular a etapa 3.
palswim
@palswim: Bom, obrigado! Sua solução é mais limpa quando um usuário usa o npp.
Vladimir Grigorov
9

O Notepad ++ não fornece nenhum recurso por padrão. Mas você pode usar algumas ferramentas online para formatar automaticamente textos como https://www.freeformatter.com/xml-formatter.html .

Isso ajuda. :)

Daksh Agrawal
fonte
2
Embora essa resposta seja uma solução alternativa e não uma solução para a questão dos OPs, é a única coisa que funcionou para mim. As ferramentas XML e Tidy2 têm problemas.
Nigel Alderton
8

Eu tive que atualizar as configurações de proxy em Plugins -> Plugin Manager -> Mostrar Plugin Manager -> Configurações para ver qualquer PlugIns na lista "Disponível".

Depois disso, a instalação do "XML Tools" foi fácil e fez o trabalho solicitado, conforme descrito acima.

Oliver Meyer
fonte
Usando "Ferramentas XML", o recuo não era o necessário para o código HTML + Javascript. O plug-in "UniversalIndentGUI" encontrado faz o trabalho perfeitamente, definindo a linguagem para HTB (HTML, XML, XSL) e, em seguida, execute 'Indent the text' no menu de plug-ins.
GuruM 17/02
6

Para responder diretamente ao OP, dê uma olhada no site desse cara: Thomas Hunter Notepad ++ Tidy for XML . Etapas simples a seguir e você obtém uma formatação muito agradável do seu XML dentro da NPP. Até agora, a única anomalia que encontrei é com elementos de fechamento automático aninhados EG:

<OuterTag>Text for outer element<SelfClosingTag/></OuterTag>

Será arrumado até:

<OuterTag>Text for outer element
<SelfClosingTag/></OuterTag>

Pode haver uma maneira de corrigir isso, mas, por enquanto, ele conseguiu reduzir o número de linhas no meu documento em 300k e essa anomalia específica pode ser contornada.

delliottg
fonte
1

Estou usando o Notepad 7.6 com "Plugin Admin" e não consegui encontrar XML Tools.
Eu tive que instalá-lo manualmente como o @ some-java-guy fez em sua resposta, exceto que minha pasta de plugins estava localizada aqui: C:\Users\<my username>\AppData\Local\Notepad++\plugins
nesse diretório, criei um novo diretório (chamado XmlTools) e copiei o XMLTools.dll lá. (E copiei todas as dependências para o diretório do Notepad ++ nos arquivos de programa.)

Björn
fonte
Com o Notepad ++ v7.8.4, "XML Tools" está disponível em "Plugin Admin". Talvez houvesse uma incompatibilidade ou algo assim. Ainda parece que ele foi desenvolvido ativamente também, considerando que o último commit foi realizado 2 dias atrás em github.com/morbac/xmltools
Micah Lindstrom
1

Basta instalar o último bloco de notas ++ e instalar o recuo Por dobra. Na barra de menus, selecione Plugins -> Plugins Admin e selecione recuo Por dobra e a instalação. Funciona melhor

Daniel Nyamasyo
fonte
esta deve ser a resposta aceitável agora, porque não consigo fazer com que a ferramenta xml ou o tidy2 funcionem. De qualquer forma, podemos atribuir atalhos para esse uso?
Irfandi D. Vendy 19/04
A versão mais recente do Notepad ++ (7.8.6) é muito decepcionante. Tentei instalar o IndentByFold na versão 7.5.6 e ele quebrou o maravilhoso plug-in AutoSave de Franco Stellari, https://sites.google.com/site/fstellari/nppplugins . Desculpe: para mim, isso é um desagrado. (!) Provavelmente nada de errado com o IndentByFold de Frank Fesevur. Por enquanto, culpo a versão mais recente do Notepad ++, https://community.notepad-plus-plus.org/topic/16449 . Lamentável.
Henke
Quanto a mim, funcionou. Estou usando a v7.8.4
Daniel Nyamasyo
Corro o risco de sair do tópico aqui, mas se alguém puder relatar uma versão do Notepad ++ posterior à 7.5.6 que funcione com o plug-in AutoSave 1.60 de Franco Stellari, https://sites.google.com/site/fstellari/nppplugins , eu ficaria mais do que feliz em mudar para essa versão. Caso contrário - não há como atualizar o Notepad ++ 7.5.6 para uma versão posterior. A versão 0.7 do IndentByFold também funciona para mim. Mas me oponho a colocar espaços (à direita) em linhas vazias, o que IndentByFold faz.
Henke
Minha versão do Notepad ++ é 7.5.6. Agora eu tentei 1) Ferramentas XML, 2) HTML Tidy, 3) Tidy2 e 4) IndentByFold 0.7. O XML Tools meio que "funciona", mas cria uma bagunça deplorável no meu código HTML, https://i.imgur.com/oLOB30Z.png . Nem HTML Tidy nem Tidy2 funcionam. O IndentByFold 0.7 é a única solução que posso trabalhar. Não gosto que ele coloque espaços (finais) em linhas vazias, mas posso conviver com isso. Ainda não apoio esta resposta (de Daniel Nyamasyo). O motivo é que discordo totalmente do conselho de usar a versão mais recente do Notepad ++.
Henke