Excluir até o caractere ser encontrado

2

No meu editor de texto, eu gostaria de definir um atalho de teclado (digamos CTRL-D) com a funcionalidade "excluir até que o caractere seja encontrado". Por exemplo, se o cursor for colocado antes do "H" deste texto:

Aí vem o cólon: você viu?

e você pressiona CTRL-Dseguido de :, o texto deve mudar para

Você viu isso?

como se você tivesse pressionado o botão Excluir 21 vezes. (Observe que os dois pontos também são excluídos.)

Se o caractere não for encontrado no texto editado (por exemplo, se você digitar CTRL-Dseguido xno exemplo acima), prefiro que nada aconteça, mas isso não é muito importante. Meu editor de texto atual é o Notepad ++, mas fique à vontade para sugerir soluções que envolvam outros editores.

user12816
fonte
Para texto em apenas uma única linha?
iglvzx
2
Se você estivesse usando o vim, seria dt:(Excluir para dois pontos) ou df:(Excluir até Localizar dois pontos). O último exclui o cólon, o primeiro não. No entanto, você não está usando o vim, portanto, este é apenas um comentário passageiro, não uma resposta.
RedGrittyBrick 28/03
@iglvzx Eu estava pensando "em uma única linha", mas "em todo o texto restante" também é bom o suficiente.
User12816

Respostas:

1

Se você está disposto a aprender um novo editor - e por "aprender um novo editor", quero dizer chutando, gritando e arrancando os cabelos por um tempo - então o editor Vim / gvim faz esse tipo de coisa facilmente. É gratuito, disponível em qualquer sistema operacional que você possa imaginar e muito livre de erros.

Algumas pessoas nunca superam a curva da curva de aprendizado, que é íngreme, mas não impossível, se você deseja aprender um editor muito poderoso. Ele inclui um tutorial incorporado ao editor e possui uma versão gráfica (gvim) e uma versão de terminal (Vim).

No seu exemplo, você digitaria "df:", mas se precisar fazer isso várias vezes, basta pressionar o período para os períodos subsequentes. No Vim, "f:" é um "comando de movimento" e simplesmente move o cursor para os dois pontos; d é um comando que exclui qualquer comando de movimento a seguir. Além disso, pode levar uma contagem, como "2df:" para excluir os próximos dois pontos e todo o texto até esse ponto.

Se você estiver interessado, tente o tutorial executando o programa e digitando ": tutorial de ajuda". Isso mostrará um pouco do poder do vim de forma rápida e simples, permitindo que você realmente o experimente, como o tutorial é mostrado no editor real.

É preciso paciência e desejo de aprender, mas vale a pena e eu pessoalmente acho que é divertido de usar.

Marty Fried
fonte
não é necessário usar o vim. A regex simples no bloco de notas ++ ou sed irá funcionar
phuclv
2

Como na figura mostrada, a substituição faria o que você deseja.

insira a descrição da imagem aqui

Depois disso, você pode salvar a substituição como uma macro. Em seguida, defina um atalho para essa macro.

Eu acho que a gravação de uma macro não precisa explicar.

odiado
fonte