No Vim, qual é o comando para corrigir o recuo de todas as linhas?
Muitas vezes, copio e colo o código em um terminal remoto e deixo tudo bagunçado. Eu quero consertar isso de uma só vez.
vim
vi
indentation
mmcdole
fonte
fonte
Respostas:
=
, o comando indent pode receber movimentos. Então,gg
para obter o início do arquivo,=
recuar,G
até o final do arquivogg=G
,.fonte
''
(duas aspas simples) leva você de volta para onde você estava, entãogg=G''
deve recuar e depois retornar.Antes de colar no terminal, tente
:set paste
e:set nopaste
depois de terminar. Isso desativará o recuo automático, quebra automática de linha e outros recursos que estão atrapalhando sua pasta.edit: Além disso, devo salientar que um resultado muito melhor do que o
=
recuo geralmente pode ser obtido usando um programa externo. Por exemplo, eu corro:%!perltidy
o tempo todo.astyle
,cindent
etc. também podem ser usados. E, é claro, você pode mapear esses itens para um pressionamento de tecla e mapear diferentes para o mesmo pressionamento de tecla, dependendo do tipo de arquivo.fonte
equalprg
opção em um plug-in ftft para usar um filtro externo para=
recuar, em vez de uma combinação de teclas personalizada.formatpgm
com arrumado e estilo e depoisgq
. Aqui estão alguns exemplos dos meus.vimrc
:au FileType xml set fp=tidy\ -q\ -i\ -xml
eau FileType java set fp=/usr/local/bin/astyle\ --mode=java\ --indent=tab
Se você deseja reinserir o bloco em que está, sem precisar digitar acordes, é possível:
fonte
=aB
que não moverá o cursor.[[=]]
requer 5 acordes :(O mestre de todos os comandos é
gg=G
Isso recua o arquivo inteiro!
E abaixo estão alguns dos comandos simples e elegantes usados para recuar linhas rapidamente no Vim ou gVim.
Para recuar todas as linhas abaixo da linha atual
Para recuar a linha atual
Para recuar
n
linhas abaixo da linha atualPor exemplo, para recuar 4 linhas abaixo da linha atual
Para recuar um bloco de código, vá para um dos chavetas e use o comando
fonte
Você pode usar o aplicativo / utilitário organizado para indentar arquivos HTML e XML e funciona muito bem na indentação desses arquivos.
Pré-especificar um arquivo XML
Pré-especificar um arquivo HTML
fonte
pressione escape e digite as combinações abaixo rapidamente:
fonte
1G=G
. Isso deve recuar todas as linhas do arquivo.1G
leva a primeira linha,=
inicia o recuo automático e a finalG
leva a última linha do arquivo.fonte
1gg=G
:set paste
é seu amigo eu uso massa de vidraceiro e acabo copiando código entre janelas. Antes de eu ligar:set paste
(e:set nopaste
) copiar / colar, dei-me ajustes por esse mesmo motivo.fonte
No Vim, use
:insert
. Isso manterá toda a sua formatação e não fará a identificação automática. Para mais informaçõeshelp :insert
.fonte
se você não quiser usar
:set paste
, clique com o botão do meioset nopaste
, também poderá colar o conteúdo da área de transferência:Dessa forma, você não precisa sair do modo normal. se você precisar colar
+
ou*
depender de como você selecionou o texto, consulte:help quoteplus
.fonte
O vim-autoformat formata seus arquivos de origem usando programas externos específicos para o seu idioma, por exemplo, a jóia "rbeautify" para arquivos Ruby, o pacote npm "js-beautify" para JavaScript.
fonte
Para arquivos C ++ complexos, o vim nem sempre obtém a formatação correta ao usar o
=
comando filter do vim . Portanto, para essas situações, é melhor usar um formatador C ++ externo como astyle (ou uncrustify ), por exemplo:A função '=' do Vim usa seu formatador interno por padrão (o que nem sempre acerta as coisas), mas também é possível configurá-lo para usar um formatador externo, como astyle, configurando-o adequadamente, conforme discutido nesta pergunta .
fonte
Para arquivos XML, eu uso este comando
Você precisa ter o xmllint instalado (pacote libxml2-utils)
(Fonte: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html )
fonte
Você pode criar um mapeamento para fazer isso por você.
Este recuará automaticamente o arquivo inteiro e ainda manterá o cursor na posição em que você está:
fonte
Para o vi Editor, use: insert. Isso manterá toda a sua formatação e não inserirá a indentação automática. Depois disso, pressione escape para visualizar o arquivo formatado real, caso contrário, você verá alguns caracteres ilegíveis. como ^ eu por exemplo:
fonte
Basta ir para o modo visual no vim e selecionar de cima para baixo depois de selecionar, basta pressionar =, Toda a linha selecionada será recuada.
fonte
ggvG=
quando você podegg=G
. Qual era o sentido de tornar o movimento visível? Isso vale para todas as ações que fazem movimentos.