Movendo e Transformando Texto

Além dos comandos universais para Copiar (Ctrl+C), Colar (Ctrl+V), Recortar (Ctrl+X), Desfazer (Ctrl+Z) e Refazer (Ctrl+Y), o Sublime Text traz também os recursos de colar mantendo a indentação do texto, usando Edit | Paste Indentation (Ctrl+Shift+V) e de permitir escolher o texto a ser colado a partir de um histórico de trechos copiados para a área de transferência, usando Edit | Paste From History.

Nas próximas seções deste capítulo, vamos fazer um passeio por todos os comandos do menu Edit responsáveis por movimentar e transformar trechos de texto.

Linhas

A manipulação de linhas é uma das atividades mais frequentes quando se está editando código-fonte. A necessidade de apagá-las, duplicá-las e movê-las, por exemplo, é uma constante quando se está programando. Portanto, recomenda-se investir algum tempo memorizando as possibilidades dos comandos e praticando o uso dos seus respectivos atalhos de teclado.

Abaixo temos os os principais comandos usados para trabalhar com linhas no Sublime Text:

Edit | Line | Indent (Ctrl+])

Insere um nível de indentação na linha onde está o cursor ou no bloco selecionado.

Edit | Line | Unindent (Ctrl+[)

Remove um nível de indentação na linha onde está o cursor ou no bloco selecionado.

Edit | Line | Reindent

Corrige a indentação de acordo com a sintaxe da linguagem que está sendo utilizada. Veremos mais sobre esse assunto no capítulo Usando o Sublime Text como IDE.

Edit | Line | Swap Line Up (Ctrl+Shift+Cima)

Move a linha corrente ou o bloco selecionado uma linha para cima, trocando de lugar com a linha acima.

Edit | Line | Swap Line Down (Ctrl+Shift+Baixo)

Move a linha corrente ou o bloco selecionado uma linha para baixo, trocando de lugar com a linha abaixo.

Edit | Line | Duplicate Line (Ctrl+Shift+D)

Duplica a linha corrente ou o bloco de linhas selecionado. É útil quando precisamos de uma linha de código praticamente igual a uma já existente, sendo necessária apenas uma pequena modificação.

Edit | Line | Delete Line (Ctrl+Shift+K)

Embora este comando também sirva para apagar um bloco de linhas previamente selecionado, seu uso mais efetivo é remover a linha onde o cursor está posicionado, pois evita ter de selecionar toda a linha antes de digitar Del, como seria o mais comum.

Edit | Line | Join Lines (Ctrl+J)

Remove as quebras de linha de um bloco selecionado, fazendo com que todo o seu conteúdo se torne uma só linha.

Menu Edit | Line

Fig. 11 Menu Edit | Line

Texto

Os comandos a seguir trazem outras opções de manipulação de texto que vale a pena conhecer:

Edit | Text | Insert Line Before (Ctrl+Shift+Enter)

Insere uma linha em branco acima de onde está posicionado o cursor. Perceba que é bem mais prático que ir para o começo da linha, depois apertar Enter e em seguida mover o cursor para cima.

Edit | Text | Insert Line After (Ctrl+Enter)

Insere uma linha em branco abaixo de onde está posicionado o cursor.

Edit | Text | Delete Word Forward (Ctrl+Del)

Apaga a palavra seguinte ao cursor. Bem melhor que selecionar a palavra e pressionar Del ou, pior, pressionar Del várias vezes.

Edit | Text | Delete Word Backward (Ctrl+Backspace)

Apaga a palavra anterior ao cursor.

Edit | Text | Delete to End

Apaga todo o texto desde a posição do cursor até o final da linha.

Edit | Text | Delete to Beginning

Apaga todo o texto desde a posição do cursor até o início da linha.

Edit | Text | Transpose (Ctrl+T)

Este recurso funciona melhor em conjunto com a seleção múltipla, fazendo com que o texto das áreas selecionadas seja trocado de lugar.

Para ver esse recurso funcionando, selecione duas áreas de texto ao mesmo tempo e note que o texto de uma substitui o da outra e vice-versa.

Quando são três ou mais áreas, o comando faz com que os textos “circulem” entre as áreas selecionadas.

Caso não haja texto selecionado, os caracteres adjacentes ao cursor é que são transpostos.

Menu Edit | Text

Fig. 12 Menu Edit | Text

Tags

Quem trabalha editando HTML diretamente sabe como é útil ter um editor de texto que trate as tags de forma inteligente. Portanto,os comandos abaixo devem fazer parte do repertório de truques:

Edit | Tags | Close Tag (Alt+.)

Detecta qual a última tag aberta e insere a tag de fechamento correspondente.

Por exemplo, se você está editando um parágrafo que começou com a tag <p>, executar este comando insere um </p> na posição do cursor.

Edit | Tags | Expand Selection to Tag (Ctrl+Shift+A)

Seleciona todo o texto que esteja entre as tags de abertura e fechamento nas quais o cursor está posicionado.

Edit | Tags | Wrap Selection to Tag (Alt+Shift+W)

Envolve o texto selecionado em uma tag HTML (ou XML em geral).

Digamos que você queira destacar uma determinada frase com negrito. Para isso, basta selecionar a frase e executar este comando. Por padrão, a frase será envolvida pelas tags <p> e </p>, mas é só digitar o nome da tag desejada (no caso, strong) para substituir.

Menu Edit | Tag

Fig. 13 Menu Edit | Tag

Marcações

As marcações (marks) servem principalmente para determinar onde deve começar ou terminar um determinado trecho de texto que queremos selecionar.

Seu uso principal é a seleção de grandes blocos de texto, do tipo que requer rolagem de tela para que seja possível chegar até o final.

Edit | Mark | Set Mark (Ctrl+K, Ctrl+Espaço)

Insere uma marcação no texto. Ao executar, surgirá um círculo na margem da área de texto, sinalizando que a linha contém uma marcação. Caso haja múltiplos cursores, várias marcações serão inseridas.

Edit | Mark | Select to Mark (Ctrl+K, Ctrl+A)

Seleciona todo o texto compreendido entre as posições dos cursores e as marcações inseridas.

Edit | Mark | Delete to Mark (Ctrl+K, Ctrl+W)

Apaga todo o texto que está entre as posições dos cursores e as marcações inseridas.

Edit | Mark | Swap with Mark (Ctrl+K, Ctrl+X)

Esse comando faz com que as marcações existentes troquem de lugar com as posições atuais dos cursores.

Edit | Mark | Yank (Ctrl+K, Ctrl+Y)

Serve para colar, na posição do cursor, o último trecho de texto que foi apagado por um comando Delete to Mark.

Menu Edit | Mark

Fig. 14 Menu Edit | Mark

Convertendo caixa alta e caixa baixa

As ocasiões nas quais precisamos, por exemplo, converter um texto que está todo em caixa alta (letras maiúsculas) para caixa baixa (letras minúsculas) são bastante frequentes. O Sublime Text traz comandos que permitem realizar a conversão de caixa com facilidade.

Edit | Convert Case | Upper (Ctrl+K, Ctrl+U)

Converte o texto selecionado para caixa alta.

Edit | Convert Case | Lower (Ctrl+K, Ctrl+L)

Converte o texto selecionado para caixa baixa.

Edit | Convert Case | Title

Converte apenas as primeiras letras de cada palavra do texto selecionado para caixa alta e as demais para caixa baixa.

Edit | Convert Case | Swap

Transforma as letras que estão em caixa alta para caixa baixa e vice-versa.

Menu Edit | Convert Case

Fig. 15 Menu Edit | Convert Case

Ordenando linhas

Edit | Sort Lines (F9)

Ordena as linhas do arquivo de acordo com o código 1 correspondente aos caracteres da linha. Na prática, as linhas serão reposicionadas em ordem alfabética a partir do primeiro caractere 2.

Edit | Sort Lines (Case Sensitive) (Ctrl+F9)

Ordena as linhas levando em conta maiúsculas e minúsculas. Usando esse comando, as linhas com letras maiúsculas são posicionadas antes das letras minúsculas.

Permutando linhas

Edit | Permute Lines | Reverse

Inverte a ordem das linhas do arquivo. Dica: para obter as linhas em ordem descendente, execute Edit | Sort Lines e em seguida o Reverse.

Edit | Permute Lines | Unique

Caso haja uma ou mais linhas exatamente iguais no arquivo, este comando elimina todas as duplicatas.

Edit | Permute Lines | Shuffle

Reposiciona aleatoriamente todas as linhas do arquivo.

Os comandos do menu Edit | Permute Selections têm a mesma função dos comandos de ordenação e permuta acima, com a diferença que operam sobre as regiões de texto selecionadas (seleção múltipla) ao invés de linhas. Note que os itens do menu só ficam habilitados quando existem dois ou mais trechos selecionados.

Menu Edit | Permute Lines

Fig. 16 Menu Edit | Permute Lines


1

Ver tabela Unicode em http://en.wikipedia.org/wiki/List_of_Unicode_characters

2

Atenção pois a ordenação alfabética não é perfeita, visto que os códigos correspondentes aos caracteres acentuados são maiores que os de todos os caracteres sem acento.