A Linha de Comando do Componente de Edição

O componente de edição do KatePart possui uma linha de comando interna, que lhe permite efetuar várias ações a partir de uma GUI mínima. A linha de comando é um campo de texto no fundo da área de edição onde, para mostrá-la, você poderá selecionar a opção VerAlternar para Linha de Comando ou usar o atalho (que é, por padrão, o F7). O editor oferece um conjunto de comandos, tal como está documentado abaixo, sendo oferecidos mais comandos através de plugins.

Para executar um comando, pressione a tecla Return. A linha de comando irá indicar se foi bem sucedida e, provavelmente, irá mostrar uma mensagem. Se você inseriu na linha de comando pressionando F7, ele ocultar-se-á automaticamente, ao fim de alguns segundos. Para limpar a mensagem e inserir um comando novo, pressione F7 de novo.

A linha de comando possui um sistema de ajuda embutido, podendo inserir o comando help para iniciá-lo. Para ver uma lista com todos os comandos disponíveis, invoque o comando help list; para ver a ajuda sobre um determinado comando, faça help comando.

A linha de comando possui um histórico embutido, como tal, o usuário poderá reutilizar os comandos já digitados. Para navegar no histórico, use as teclas Acima e Abaixo. Ao mostrar os comandos do histórico, a parte do argumento do comando será selecionada, o que lhe permite sobrepor facilmente os argumentos.

Comandos Padrão da Linha de Comando

Tipos de argumento

BOOLEANO

Isto é usado com os comandos que ativam ou desativam certas coisas. Os valores válidos são o on, off, true, false, 1 ou 0.

INTEIRO

Um número inteiro.

TEXTO

Uma string separada por aspas simples (') ou aspas (") quando conter espaços.

Comandos para configurar o Editor

Estes comandos são oferecidos pelo componente do editor e permitem-lhe configurar apenas o documento e a janela ativos. Isto poderá ser útil se quiser usar uma configuração diferente da pré-definida como, por exemplo, no recuo.

set-tab-width {INTEIRO largura}

Configura a largura da tabulação como sendo largura.

set-indent-width {INTEIRO largura}

Configura a largura do recuo como largura. Só é usado se o usuário recuar com espaços.

set-word-wrap-column {INTEIRO largura}

Configura a largura da linha para uma quebra como tendo largura colunas. Isto é usado se você tiver o seu texto sendo quebrado automaticamente.

set-icon-border {BOOLEANO ativar}

Configura a visibilidade da borda dos ícones.

set-folding-markers {BOOLEANO ativar}

Configura a visibilidade da área de marcadores de dobra do código.

set-line-numbers {BOOLEANO ativar}

Configura a visibilidade da área de números de linha.

set-replace-tabs {BOOLEANO ativar}

Se estiver ativo, as tabulações são substituídas por espaços, à medida que você vai digitando.

set-remove-trailing-space {BOOLEANO ativar}

Se estiver ativo, os espaços finais serão removidos quando o cursor abandonar uma determinada linha.

set-show-tabs {BOOLEANO ativar}

Se estiver ativo, os caracteres de tabulação e espaços estarão visíveis através de um pequeno ponto.

set-show-indent {BOOLEANO ativar}

Se estiver ativo, o recuo será visualizado por uma linha tracejada vertical.

set-indent-spaces {BOOLEANO ativar}

Se estiver ativo, o editor irá recuar com largura-recuo espaços por cada nível de recuo, em vez de usar o caractere TAB.

set-mixed-indent {BOOLEANO ativar}

Se estiver ativo, o KatePart irá usar uma mistura de TABs e espaços para o recuo. Cada nível de recuo irá ter um tamanho de largura-recuo, enquanto os restantes níveis de recuo serão otimizados para usar tantos caracteres TAB quantos possíveis.

Quando for executado, este comando irá ativar o recuo com espaços e, se a largura de recuo não estiver definida, corresponderá a metade da largura-tabulação do documento, no momento da execução.

set-word-wrap {BOOLEANO ativar}

Ativa a quebra de linha dinâmica, de acordo com o parâmetro ativar.

set-replace-tabs-save {BOOLEANO ativar}

Quando estiver ativo, as tabulações serão substituídas por espaços em branco, sempre que o documento for salvo.

set-remove-trailing-space-save {BOOLEANO ativar}

Quando estiver ativo, os espaços finais serão removidos de cada linha, sempre que o documento for salvo.

set-indent-mode {TEXTO nome}

Configura o modo de recuo automático como nome. Se o nome não for conhecido, o modo é configurado como 'none' (nenhum). Os modos válidos são 'none', 'normal', 'cstyle', 'haskell', 'lilypond', 'lisp', 'python', 'ruby' e 'xml'.

set-auto-ident {BOOLEANO script}

Ativa ou desativa o recuo automático.

set-highlight {TEXTO realce}

Configura o sistema de realce de sintaxe para o documento. O argumento deverá ser um nome de realce válido, como pode ser visto no menu FerramentasRealce. Este comando oferece uma lista de completação automática para o seu argumento.

reload-scripts

Recarrega todos os scripts do JavaScript usados pelo Kate, incluindo scripts de indentação e de linha de comando.

set-mode {STRING modo}

Seleciona o esquema de tipo de arquivo para o documento atual.

nn[oremap] {TEXTO original} {TEXTO mapeado}

Mapeia a sequência original para a mapeada.

Comandos de edição

Estes comandos modificam o documento atual.

indent

Recua as linhas selecionadas ou a linha atual.

unindent

Remove um nível de recuo das linhas selecionadas ou da linha atual.

cleanindent

Limpa o recuo das linhas selecionadas ou da linha atual, de acordo com a configuração de recuo no documento.

comment

Insere marcações de comentários para fazer da seleção, linhas selecionadas ou da linha atual um comentário, de acordo com o formato de texto definido pela definição do realce de sintaxe para o documento.

uncomment

Remove os marcadores de comentários da seleção, linhas selecionadas ou da linha atual, de acordo com o formato de texto definido pela definição do realce de sintaxe do documento.

kill-line

Remove a linha atual.

replace { TEXTO padrão} {TEXTO substituição}

Substitui o texto correspondente ao padrão por substituição. Se você quiser incluir espaços em branco no padrão, deverá colocar tanto o padrão como a substituição entre aspas simples ou duplas. Se os argumentos não estiverem entre estes caracteres, a primeira palavra é usada como padrão e o resto como a substituição. Se a substituição estiver em branco, cada ocorrência do padrão será removida.

Você poderá configurar opções para modificar a procura, adicionando dois pontos (:), seguidos de uma ou mais letras, onde cada uma representa uma configuração, o que corresponderá ao formato replace:opções padrão substituição. As opções disponíveis são:

b

Pesquisar para trás.

c

Procura a partir da posição do cursor.

e

Procura apenas na área selecionada.

r

Faz uma pesquisa por uma determinada expressão regular. Se estiver ativo, você poderá usar o \N, onde o N é um número que representa as capturas no texto de substituição.

s

Faz uma pesquisa com distinção entre maiúsculas e minúsculas.

p

Pede permissão para substituir a próxima ocorrência.

w

Faz uma correspondência apenas com palavras inteiras.

date {TEXTO formato}

Insere um texto de data/hora, tal como está definido pelo formato indicado, ou com o formato aaaa-MM-dd hh:mm:ss, se não for indicada qualquer formatação. As traduções a seguir são feitas quando for interpretado o formato:

dO dia, como um número sem um zero inicial (1-31).
ddO dia, como um número com um zero inicial (01-31).
dddO nome do dia abreviado, no formato regional (por exemplo 'Seg'..'Dom').
ddddO nome do dia completo, no formato regional (por exemplo 'Segunda'..'Domingo').
MO mês, como um número sem um zero inicial (1-12).
MMO mês, como um número com um zero inicial (01-12).
MMMMO nome completo do mês localizado (por exemplo 'Janeiro'..'Dezembro').
MMMO nome do mês abreviado, no formato regional (por exemplo 'Jan'..'Dez').
aaO ano, como um número de dois algarismos (00-99).
aaaaO ano, como um número de quatro algarismos (1752-8000).
hAs horas sem um zero inicial (0..23 ou 1..12 no caso do formato AM/PM).
hhAs horas com um zero inicial (00..23 ou 01..12 no caso do formato AM/PM).
mOs minutos sem um zero inicial (0..59).
mmOs minutos com um zero inicial (00..59).
sOs segundos sem um zero inicial (0..59).
ssOs minutos com um zero inicial (00..59).
zOs milissegundos sem um zero inicial (0..999).
zzzOs milissegundos com zeros iniciais (000..999).
APUsar o formato de horas AM/PM. O AP será substituído por "AM" ou por "PM".
apUsar o formato de horas am/pm. O ap será substituído por "am" ou por "pm".

char {TEXTO identificador}

Este comando permite que você insira caracteres literais através de suas identificações numéricas, em decimal, octal ou hexadecimal. Para usá-lo, abra o diálogo de Edição de Comando e digite char: [número] na caixa de entrada e clique em OK.

Exemplo 5.1. exemplos do comando char

Entrada: char:234

Resultado: ê

Entrada: char:0x1234

Resultado:


s///[ig] %s///[ig]

Este comando faz um sed como operação de procura/substituição na linha atual, ou em um arquivo inteiro (%s///).

Em resumo, é procurado o texto que combine com o padrão de busca , a expressão regular entre a primeira e a segunda barra, e quando é encontrado, a parte que combina com o texto é substituída pela expressão entre a segunda e a última barra. Os parênteses no padrão de busca criam referências anteriores, isto é, o comando lembra qual parte encontrada do texto combinou no parênteses; estas strings podem ser reutilizadas no padrão de substituição, referidas como \1 para o primeiro conjunto de parênteses, \2 para o segundo e assim por diante.

Para procurar por um caractere literal ( ou ), você precisa usar o caractere de escape, que é o caractere de barra invertida: \(\)

Se você puser um i no fim da expressão, a correspondência não fará distinção entre maiúsculas ou minúsculas. Se, por outro lado, puser um g no fim, todas as ocorrências do padrão serão substituídas, caso contrário, só será substituída a primeira ocorrência.

Exemplo 5.2. Substituindo texto na linha atual

Seu compilador parou, dizendo a você que a classe minhaClasse, mencionada na linha 3902 do seu arquivo fonte, não está definida.

"Droga!" você pensa, é claro que é MinhaClasse. Você vai para a linha 3902, e em vez de tentar encontrar a palavra no texto, você lança o Diálogo de Edição de Comando, digita s/minhaclasse/MinhaClasse/i, clica no botão OK, salva o arquivo e compila – com sucesso, sem erros.


Exemplo 5.3. Substituindo texto no arquivo inteiro

Imagine que você tem um arquivo, no qual está mencionada a string Senhorita Jensen várias vezes, quando aparece alguém e lhe diz que ela casou com o Senhor Jones. Você quer, é claro, substituir todas as ocorrências de Senhorita Jensen por Senhora Jones.

Entre na linha de comando e digite o comando %s/Senhorita Jensen/Senhora Jones/, pressionando RETURN para terminar.


Exemplo 5.4. Um Exemplo Mais Avançado

Este exemplo tira partido das referências anteriores assim como das classes de palavras (se você não souber o que isso é, baseie-se na documentação referida abaixo).

Suponha que você possui a seguinte linha:

void MinhaClasse::DoStringOps( String      &foo, String &bar, String *p, int  &a, int &b )

Agora, você pode perceber que este não é um código bom, e decidir que deseja usar a palavra-chave const para todos os argumentos address of, aqueles caracterizados pelo operador & em frente ao nome do argumento. Você poderia também simplificar o espaço em branco, pois assim existiria somente um caractere de espaço em branco entre cada palavra.

Abra o Diálogo de Edição de Comando, e digite s/\s+(\w+)\s+(&)/ const \1 \2/g e clique no botão OK. O caractere g no final da expressão faz com que a expressão regular recompile cada combinação, para recuperar as referências de volta.

Saída void MinhaClasse::DoStringOps( const String &foo, const String &bar, String *p, const int &a, const int &b )

Missão completa! Agora, o que aconteceu? Bem, procuramos por espaços em branco (\s+) seguidos por um ou mais caracteres alfabéticos(\w+) seguidos por mais espaços em branco (\s+) seguidos por um E comercial, e no processo é salvo o pedaço alfabético e o E comercial para reutilização na operação de substituição. Quando substituímos a parte relacionada da nossa linha, com um espaço em branco, seguido por const, seguido por um espaço em branco, seguido por nosso pedaço alfabético (\1) seguido por um espaço em branco, em por fim, seguido por nosso E comercial salvo (\2)

Em alguns casos, a parte alfabética foi String, em alguns int, assim, usar a classe de caractere \w e o quantificador + provê uma vantagem considerável.


sort

Ordena o texto selecionado ou todo o documento.

natsort

Ordena as linhas selecionadas ou todo o documento naturalmente.

Exemplo 5.5. sort x natsort

sort(a10, a1, a2) resulta em a1, a10, a2

natsort(a10, a1, a2) resulta em a1, a2, a10


moveLinesDown

Move as linhas selecionadas para baixo.

moveLinesUp

Move as linhas selecionadas para cima.

uniq

Remove linhas duplicadas do texto selecionado ou do documento inteiro.

rtrim

Remove o espaço à direita do texto selecionado ou do documento inteiro.

ltrim

Remove o espaço à esquerda do texto selecionado ou do documento inteiro.

join [TEXTO separador]

Mescla as linhas selecionadas ou o documento inteiro. Opcionalmente, recebe um parâmetro definindo um separador, por exemplo: join ', '

rmblank

Remove todos os espaços em branco do texto selecionado ou do documento inteiro.

alignon

Este comando alinha as linhas no bloco selecionado ou em todo o documento na coluna especificada por uma expressão regular fornecida como argumento.

Se você fornecer um padrão vazio, ele se alinhará ao primeiro caractere não vazio por padrão.

Se o padrão tiver uma captura, ele será recuado na correspondência capturada.

Exemplos:

alignon - irá inserir espaços antes do primeiro '-' de cada linha para alinhá-las na mesma coluna.

alignon :\\s+(.) irá inserir espaços antes do primeiro caractere não em branco que ocorrer após dois pontos para alinhá-los todos na mesma coluna.

unwrap

Remove as quebras de linha do texto selecionado ou do documento inteiro.

each {TEXTO script}

Fornecida uma função do JavaScript como argumento, chama pela lista de linhas selecionadas e substitui-as com o valor de retorno desta chamada.

Exemplo 5.6. Mescla as linhas selecionadas

each 'function(lines){return lines.join(", ")}'

Ou, de maneira resumida:

each 'lines.join(", ")'


filter {TEXTO script}

Fornecida uma função do JavaScript como argumento, chama pela lista de linhas selecionadas e remove-as onde a chamada retorna falso.

Exemplo 5.7. Remover linhas em branco

filter 'function(1){return 1.length > 0;}'

Ou, de maneira resumida:

filter 'line.length > 0'


map {TEXTO script}

Fornecida uma função do JavaScript como argumento, chama pela lista de linhas selecionadas e substitui a linha com o valor de retorno da chamada.

Exemplo 5.8. Remover linhas em branco

map 'function(line){return line.replace(/^s+/,"");}'

Ou, de maneira resumida:

map 'line.replace(/^s+/,"")'


duplicateLinesUp

Duplica as linhas selecionadas acima da seleção atual.

duplicateLinesDown

Duplica as linhas selecionadas abaixo da seleção atual.

Comandos de navegação

goto {INT linha}

Este comando vai para a linha indicada.

grep {TEXTO padrão}

Pesquisa o documento pela expressão regular padrão. Para mais informações, veja as Apêndice A, Expressões Regulares.

find {TEXTO padrão}

Este comando vai para a primeira ocorrência do padrão, de acordo com a configuração. As ocorrências a seguir poderão ser encontradas com a opção EditarProcurar Próximo (o atalho por padrão é o F3).

O comando de procura poderá ser configurado adicionando dois-pontos, seguidos de uma ou mais opções, sendo o formato find:opções padrão. São suportadas as seguintes opções:

b

Pesquisar para trás.

c

Procura a partir da posição do cursor.

e

Procura apenas na área selecionada.

r

Faz uma pesquisa por uma determinada expressão regular. Se estiver ativo, você poderá usar o \N, onde o N é um número que representa as capturas no texto de substituição.

s

Faz uma pesquisa com distinção entre maiúsculas e minúsculas.

w

Faz uma correspondência apenas com palavras inteiras.

ifind {TEXTO padrão}

Este comando oferece uma procura à-medida-que-digita. Você poderá configurar o comportamento da procura adicionando dois-pontos (:), seguidos de uma ou mais opções, como se segue: ifind:opções padrão. As opções permitidas são:

b

Pesquisar para trás.

r

Faz uma procura por uma expressão regular.

s

Faz uma pesquisa com distinção entre maiúsculas e minúsculas.

c

Procura a partir da posição do cursor.

Comandos das funções básicas do editor (dependem do aplicativo em que o componente de edição for usado)

w

Salvar o documento atual.

wa

Salvar todos os documentos abertos.

q

Fechar o documento atual.

qa

Fechar todos os documentos abertos.

wq

Salvar e fechar o documento atual.

wqa

Salvar e fechar todos os documentos abertos.

x

Salvar e fechar o documento atual somente se ele foi modificado.

x

Salvar e fechar todos os documentos abertos somente se eles foram modificados.

bp

Ir para o documento anterior na lista de documentos.

bn

Ir para o próximo documento na lista de documentos.

new

Abrir um novo documento em uma divisão de visão horizontal.

vnew

Abrir um novo documento em uma divisão de visão vertical.

e

Recarregar o documento atual se ele tiver sido modificado em disco.

enew

Editar um novo documento.

print

Abrir a janela de impressão para imprimir o documento atual.