Coloque um único ponto com Vim / Ex

6

Eu estou brincando com o vim um forros, e eu sou incapaz de escapar de um. caractere em um comando vim ex mode append.

Basicamente,

vim -En '+a|Hello World' '+p' '+q!' -

imprime "Olá mundo"

Mas,

vim -En '+a|.' '+p' '+q!' -

não imprime nada. O . em uma linha por si só termina o comando append, então não consigo imprimir.

Isso, infelizmente, significa que não consigo escrever um script de comando vim -E, permitindo que eu encadeie comandos. Eu quero algo assim, onde a primeira chamada vim constrói os comandos Ex, e a segunda interpreta-os

vim -En '+a|aConvoluted Hello World
.
Qp
QZQ
' | vim -En

Mas a primeira chamada falha: tudo do. on é ignorado.

Alguma maneira de escapar do ponto? (É um pouco de código de golfe, então tudo tem que ser apenas vim)

Regras de golfe para quem estiver interessado:

No characters from the set b,c,d,e,f,k,p,r,s,t,{,},$,&,;,/,:,@,#,,,(,),<,>,! All uppercase characters are allowed.

    
por dhakim 02.07.2017 / 23:28

1 resposta

1

Isso pode ser um pouco inventado, mas gera um único período para mim:

vim -En '+a|.x' '+s/x//' '+p' '+q!' -

(Você mencionou golfe, então talvez isso não funcione para você, pois adiciona um número relativamente grande de caracteres. Certifique-se de detalhar quaisquer restrições específicas, se tiver alguma.)

    
por 03.07.2017 / 13:32

Tags