vim: remove o recuo de código anterior e converte para outro

3

Eu tenho um projeto AC com vários arquivos (mais de 100), os códigos são escritos no estilo Whitesmiths , mas quero alterá-los para o recuo estilo K & . É possível usar o vim de maneira automatizada?

Por exemplo, eu tenho um script emacs-lisp para conseguir isso -

(progn 
  (find-file "{}") 
  (mark-whole-buffer) 
  (setq indent-tabs-mode nil) 
  (untabify (point-min) (point-max)) 
  (indent-region (point-min) (point-max) nil) 
  (save-buffer))

Eu queria saber se existe um truque semelhante que poderia ser feito com o vim.

Atualização: encontrei outra ferramenta interessante chamada astyle , que suporta o recuo automático em diferentes idiomas ( com uma grande variedade de estilos).

    
por ramgorur 25.11.2012 / 09:51

2 respostas

5

Transmita todos os arquivos C para o executável do Vim vim file1.c dir/file2.c , ou adicione-os como argumentos de dentro do Vim (veja :help file-searching ):

:args **/*.c **/*.h

Depois, você pode editá-los em massa por meio de :argdo . O Vim possui um mecanismo de recuo embutido ou pode usar um formatador de código externo. Leia os detalhes em :help C-indenting .

Depois de definir as configurações de recuo ( 'cindent' , 'cinoptions' , etc.), você pode aplicar todos os arquivos via

:argdo execute 'normal! ggVG=' | update

( ggVG seleciona todo o buffer no modo visual, = então re-formata.)

    
por 25.11.2012 / 10:30
4

recuo do homem * scroll de rolagem *

   The Kernighan & Ritchie style is used  throughout  their  well-known  book
   "The  C  Programming Language".  It is enabled with the ‘-kr’ option.  The
   Kernighan & Ritchie style corresponds to the following set of options:

        -nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0
        -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs
        -nprs -npsl -saf -sai -saw -nsc -nsob -nss

Por exemplo:

indent -kr source.cpp
    
por 25.11.2012 / 17:31