Ubuntuターミナルにpythonコードを貼り付けています。ただし、コードにはインデントが必要なforループが含まれています。インデントを維持してコードを貼り付ける方法はありますか。インデント付きで直接貼り付ける「一部の文字」を貼り付けるようなコマンドがあることを覚えています。しかし、私はそれをオンラインで見つけることができません。
誰かが方法を提案したり、コマンドを思い出させることができますか?
pythonインタープリターにコードを貼り付ける方が良いでしょう。ただし、シェルでは、python <<EOF
で here-doc リダイレクトを開始し、コードを貼り付けて、EOF
で閉じることができます。そのようです:
$ python3 <<EOF
> for i in range(5):
> print(i)
> EOF
0
1
2
3
4
もちろん、適切なPythonバージョンを使用しており、コード構文がそれと一致していることを確認してください。
クリエイティブを取得したい場合は、xclip
パッケージをインストールして、プログラムでクリップボードのコンテンツにアクセスし(インストールはSudo apt-get install xclip
を介して行われます)、.bashrc
に次の関数を作成し、それをソースします:
pyfromclip(){ python3 < <(xclip -o -sel clip); }
この関数はbash
のプロセス置換< <()
機能を使用し、xclip
の出力をリダイレクトします。これにより、クリップボードのコンテンツがstdout
ストリームに解放され、Pythonのstdin
ストリームになります。
$ 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