No Sublime 3, há esse comando chamado Paste and Indent
e o comando de teclado para isso é Super + shift + V
, em que Super
é a chave de comando principal do sistema operacional. Isso parece fazer o truque.
Encontrei-o aqui: link
Editar: pôster original adicionando mais informações, para que as pessoas não precisem analisar os comentários.
Voltando ao segundo passo do problema original:
int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);
if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
}
Eu seleciono as duas linhas entre o primeiro conjunto de chaves (as atribuições para firstVar
e secondVar
, copie-as ( Ctrl + C ) e adicione uma linha vazia entre o segundo conjunto de chaves e coloque o cursor no início da linha em branco (indicado pelo |
, abaixo):
int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);
if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
|
}
Então eu 'Colar e Recuar' ( Ctrl + Deslocar + V ), e o código é colado com o recuo padrão para o tipo de arquivo, pronto para eu mudar. (Além disso, se eu tivesse colado mais linhas, com diferentes níveis de recuo, elas seriam ajustadas de acordo.)
int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);
if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
firstVar = 4;
secondVar = 11;
|
}
Infelizmente, também é deixada uma linha extra em branco (porque se eu não tivesse colocado a linha extra, ela não teria recuado), mas isso é fácil de apagar.
(Então, infelizmente, ainda não é tão bom quanto ter o recorte de várias linhas funcionando corretamente, já que primeiro tenho que criar e depois destruir uma linha em branco. Apenas duas teclas extras pressionadas, você Claro, mas são dois pressionamentos de tecla que eu não precisaria fazer se a indentação de várias linhas funcionasse corretamente e interrompesse meu fluxo natural, então tenho que pensar sobre isso em vez de sobre o código mudanças que estou tentando fazer.
(Alternativamente, eu posso desmarcar o caractere de nova linha no final da última linha, pressionando ← enquanto continua pressionando Shift , e então eu só tem que criar uma nova linha, mas não excluir uma após a colagem, mas isso é uma coisa ainda menos natural para se fazer ou pensar do que adicionar e excluir uma linha extra em branco, e ainda envolve duas teclas extras.
(De qualquer forma, esse recurso é uma solução alternativa, não uma correção, mesmo que seja um recurso interessante, até legal).
No entanto, em situações em que você já tem linhas de texto entre suas chaves ( e você não precisa colar o novo código antes da última chave), ele funciona muito bem: você não usa Não é necessário adicionar uma linha em branco, basta posicionar o cursor no início da linha onde deseja inserir o novo código e pressionar Ctrl + Deslocar + V . As linhas serão inseridas com recuo que corresponde ao seu entorno.
Além disso, você não precisa necessariamente usar o recuo padrão. Se você colocar o cursor em alguma coluna arbitrária (com apenas espaço em branco à esquerda), o comando 'Colar e recuar' recortará tudo o que você colar nessa coluna. (Se você fizer isso em uma linha com texto à direita do cursor, o recuo dessa linha será alterado para corresponder ao que você colou).
Como eu disse, um recurso interessante e bastante legal, vale a pena brincar e conhecer, com certeza. E vale a pena ser a resposta aceita para esta pergunta. Mas ainda não bastante e apenas fazendo o recuo de várias linhas funcionar corretamente. :)