Como re-executar o auto-indentação do vim em um arquivo tex?

6

Eu tenho um arquivo fonte LaTeX com seu recuo desordenado. Eu estou procurando uma maneira de forçar o vim (pode ser através de um dos comandos vim-latex-suite ) para re-executar os comandos de indentação automática sobre o arquivo inteiro mais uma vez.

Eu posso facilmente me livrar do recuo confuso comendo todos os espaços em branco no começo de cada linha com um simples regex :%s/^\s\+// . Meu problema é como executar novamente os comandos de recuo automático em todo o arquivo.

(Eu estou basicamente procurando por algo como smart indent no MATLAB Editor ou algum outro editor de texto, que pode recuar o texto já existente).

    
por Bichoy 13.08.2013 / 23:28

2 respostas

8

Método 1: vim

Acredito que você pode fazer o que quiser com os seguintes comandos de teclado em vim , da seguinte forma.

NOTA: = , o comando de recuo pode receber movimentos.

Então:

  • gg para obter o início do arquivo
  • = para recuo
  • G para o final do arquivo

Juntando tudo: gg=G .

Método # 2: sem vim

Esta não é uma solução vim , mas me deparei com este script Perl intitulado LaTeXTidy.pl , que pode ser mais útil se você tiver vários arquivos para fazer isso.

O script original e uma cópia em pastebin:

Exemplo

Para executá-lo, você precisará torná-lo executável depois de baixá-lo e, em seguida, apenas executá-lo passando o nome de um arquivo de látex.

download

$ curl -o latextidy.pl http://bfc.sfsu.edu/LaTeXTidy-0.31.pl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4755  100  4755    0     0   1201      0  0:00:03  0:00:03 --:--:--  1334

permissões e execução

$ chmod +x latextidy.pl
$ ./latextidy.pl <some_latex_file.tex>
    
por 14.08.2013 / 00:00
4

No vim, a tecla = pode ser usada para corrigir automaticamente o recuo. gg=G corrigirá o recuo do arquivo inteiro.

    
por 14.08.2013 / 00:13