Colar no terminal com recuo

2

Estou colando um código python no Ubuntu Terminal. No entanto, o código contém loops para os quais o recuo é necessário. Existe uma maneira de colar o código mantendo o recuo. Eu lembro que há um comando como colar "algum caractere" que cola diretamente com recuo. Mas eu não consigo encontrá-lo online.

Alguém pode sugerir uma maneira ou me lembrar do comando?

    
por mathisbetter 24.05.2018 / 18:39

1 resposta

2

É melhor você colar o código no interpretador python. No shell, no entanto, você pode iniciar o redirecionamento here-doc com python <<EOF , colar o código e fechá-lo com% código%. Assim:

$ python3 <<EOF
> for i in range(5):
>     print(i)
> EOF
0
1
2
3
4

Claro, certifique-se de usar a versão adequada do Python e sua sintaxe de código corresponde a essa.

Se você quiser ser criativo, instale o pacote EOF para acessar o conteúdo da área de transferência de forma programática (a instalação é feita via xclip ) e crie a seguinte função em sudo apt-get install xclip e, em seguida, digite:

pyfromclip(){ python3 < <(xclip -o -sel clip); }

Essa função usa o recurso .bashrc de substituição de processo < <() e redireciona a saída de bash , que libera o conteúdo da área de transferência para seu fluxo xclip , no fluxo stdout do python.

$ cat ./hello_world.py 


d = { "Hello": 1, "World": 2 }

for key,value in d.items():
    print(key,value)
$ xclip -sel clip ./hello_world.py 
$ # We copied into clipboard, so now let's run it
$ pyfromclip 
Hello 1
World 2
    
por Sergiy Kolodyazhnyy 24.05.2018 / 19:34