Finja que você tem um arquivo de texto arbitrário (que você pode escolher).
Dê a sequência de pressionamentos de tecla que é mais destrutiva (*) se foi planejada para ser inserida no texto, mas foi inserida no modo normal (ou seja, i/ anão foi pressionado). Você não pode entrar no modo visual e não sair do Vim.
Destrutivo é definido da seguinte forma: A proporção de caracteres alterados / excluídos pelo número de pressionamentos de tecla necessários.
Você ganha pontos de bônus se suas alterações não puderem ser desfeitas por um número fixo de undos.
Exemplo: arquivo de entrada sem quebras de linha. Sequência de entrada: dfs.
code-challenge
vim
bitmask
fonte
fonte
Respostas:
arruina tudo sem desfazer
fonte
:0,0 w
deve escrever linhas 0-0 e:r
então lê-lo (agora vazia) de volta, eu realmente não tenho uma vim para testá-lo embora: 0,0 w
escreve um buffer parcial, então (o meu) Vim se recusa a salvá-lo, devo dizer emw!
vez dew
. Até agora tudo bem, agora:r
não reabre o arquivo. Em vez disso, você deve dizer o:e
que será lido no arquivo do sistema de arquivos. No entanto, embora com essas modificações ele mude o buffer, ele está longe de estar vazio. Ele contém a primeira linha (porque você salvou "0,0"). Pelo menosu
não fazer não funciona.Isso limpa o conteúdo do arquivo e o salva. Não é possível desfazer porque
undolevel
está definido como um número negativo, o que desativa a operação de desfazer.Editar: é melhor escrever em
:g/^/d
vez deggdG
, porque no último caso, você pode usarp
(colocar) para reverter as alterações.fonte
ggdG
pode ser substituído por:%d
ggdG
, que pode ser invertida, colocando (p
), de modo que:g/^/d
ainda parece uma opção melhor :):%d_
é mais curto que:g/^/d
e também resolve oput
problema.Dobrar as regras, porque estou adicionando caracteres (um caractere que não existe e agora existe, significa que um caractere foi alterado). Eu posso adicionar quantos caracteres eu quiser, então essa pontuação é teoricamente infinita.
fonte
5 bytes:
seguido de uma pressão de enter.
Joga fora o estado atual do arquivo que você está editando da memória, para que todas as alterações não salvas nesse arquivo sejam perdidas. Se você tiver outros arquivos abertos, eles não serão afetados. Isso não fecha o vim, mesmo se você tiver apenas um arquivo aberto.
fonte