Como faço para corrigir o recuo de seus enormes arquivos html que estavam todos bagunçados?
Eu tentei o "gg=G
comando usual , que é o que eu uso para corrigir o recuo dos arquivos de código. No entanto, não parecia funcionar direito em arquivos HTML. Ele simplesmente removeu toda a formatação.
Eu também tentei configurar :filetype = xml
, para ver se enganá-lo pensando que este era um arquivo XML ajudaria, mas ainda não o fez.
html
vim
vi
indentation
mmcdole
fonte
fonte
Há várias coisas que todos precisam estar no lugar. Apenas para resumir todos eles em um local:
Defina a seguinte opção:
Em seguida, mova o cursor para a parte superior do arquivo e recue até o final:
gg
=G
ou selecione o texto desejado para recuar e pressione =para recuar.
fonte
home.html
. Não tenho nenhum problema para recuar arquivos .php. Aqui está o meu .vimrc: pastebin.com/FAJ0MCA9vim 7.4
no padrão configurações de recuo vai falhar para este exemplo, comohtml
,body
ep
não são recuados por padrão. Veja esta resposta .smartindent
não é necessário. Também é ajustado para C e C ++, prefiro usar mais geralautoindent
.O principal problema ao usar o recuo inteligente é que, se o XML (ou HTML) estiver em uma linha, pois pode acabar voltando de uma solicitação de curvatura,
gg=G
não será possível. Em vez disso, experimentei apenas um bom recuo usando arrumado chamado diretamente do VI:Isso basicamente diz ao VI para arrumar a limpeza de um arquivo XML que não quebra as linhas para ajustá-las às linhas largas padrão de 68 caracteres. Eu processei um arquivo XML grande de 29 MB e levou 5 ou 6 segundos. Eu acho que, para um arquivo HTML, o comando deve ser:
Como mencionado nos comentários,
tidy
é uma ferramenta básica que você pode encontrar em muitos sistemas Linux / MacOS básicos. Aqui está a página do projeto, caso você deseje, mas não possui: HTML Tidy .fonte
Como tylerl explica acima, defina o seguinte:
No entanto, nota que no vim 7.4 as tags HTML
html
,head
,body
, e alguns outros são não recortado por padrão. Isso faz sentido, pois quase todo o conteúdo de um arquivo HTML se enquadra nessas tags. Se você realmente quiser, pode fazer com que essas tags sejam recuadas da seguinte forma:Consulte " Recuo em HTML não funciona no Vim 7.4 compilado, alguma idéia? " E " script de indent html alternativo " para obter mais informações.
fonte
Esta é a minha solução que funciona bem para abrir HTML "feio" de uma maneira bem espaçada:
sw
comando é porque meu padrão é 4, que é muito alto para HTML.>
).=
.>
(desde que eu tenhoset hlsearch
no meu vimrc).Você pode adicionar
| wq! fileOut.html
até o final se não quiser entrar no Vim, mas apenas limpe o arquivo.fonte
:%s/>\s*/>\r/g
(adicionei umg
para substituição global e\s*
retire o espaço em branco à direita). Também adicionei:%s/</\r</g
para adicionar uma nova linha antes do colchete aberto. Caso contrário, as tags like<td>foo</td>
serão divididas como<td>
efoo</td>
.Eu uso este script: https://github.com/maksimr/vim-jsbeautify
No link acima, você tem todas as informações:
:call HtmlBeautify()
Faz o trabalho lindamente!
fonte
Você já tentou usar o script de indentação HTML no site do Vim?
fonte
/usr/share/vim/vim74/indent/html.vim
). "2014 04 de julho: Vim 7.4.356 ou posterior inclui um descendente desse script (o script oficial é agora mantido por Bram e inclui grandes mudanças)"Aqui está uma solução pesada que faz você recuar, além de toda a impressão bonita em HTML com a qual você não quer necessariamente se preocupar enquanto estiver editando.
Primeiro, faça o download do Tidy . Certifique-se de adicionar o binário ao seu caminho, para que você possa chamá-lo de qualquer local.
Em seguida, crie um arquivo de configuração descrevendo seu sabor HTML favorito. A documentação não é ótima para o Tidy, mas aqui está uma visão geral e uma lista de todas as opções . Aqui está o meu arquivo de configuração:
Guarde isto como
tidyrc_html.txt
no seuftplugin
pasta (em vimfiles).Mais um arquivo: adicione a seguinte linha a (ou crie)
html.vim
, também emftplugin
:Para usá-lo, basta abrir um arquivo HTML e digite
/tidy
. (Esse/
é o<leader>
chave.)Ai está! Não é uma solução rápida, por qualquer meio, mas agora você está um pouco melhor equipado para editar esses enormes arquivos HTML bagunçados.
fonte
Você pode integrar o tidy e o html-beautify automaticamente instalando o plugin vim-autoformat . Depois disso, você pode executar o formatador instalado com um único pressionamento de tecla.
fonte
Se o autoformato / recuo do vim
gg=G
parece estar "quebrado" (como à esquerda em todas as linhas), provavelmente o plug-in de recuo não está ativado / carregado. Deveria realmente dar uma mensagem de erro em vez de apenas fazer um recuo ruim, caso contrário, os usuários acham que o recurso de autoformação / recuo é péssimo, quando na verdade é muito bom.Para verificar se o plugin de recuo está ativado / carregado, execute
:scriptnames
. Veja se.../indent/html.vim
está na lista. Caso contrário, isso significa que o plug-in não está carregado. Nesse caso, adicione esta linha a~/.vimrc
:Agora, se você abrir o arquivo e executar
:scriptnames
, deverá ver.../indent/html.vim
. Em seguidagg=G
, execute , o que deve executar o autoformato / recuo correto agora. (Embora não adicione novas linhas, por isso, se todo o código html estiver em uma única linha, ele não será recuado).Nota: se você estiver executando
:filetype plugin indent on
na linha de comandos do vim em vez de~/.vimrc
, deverá abrir novamente o arquivo:e
.Além disso, você não precisa se preocupar com
autoindent
esmartindent
configurações, eles não são relevantes para esta.fonte