環境
macOS:Catalina 10.15.7
python:3.8.5
VScode:1.50.1
問題点
VScodeのterminalにてpython実行時に、方向キーを押すと、"^[[A^[[B^[[C^[[D"と入力されてしまい、過去に一度入力した値でももう一度入力しなければいけなかった。
^[[A^[[B^[[C^[[D
解決策
今回は、「rlwrap」を導入することによってこの問題を回避します。
導入にあたって、「homebrew」を使用しますが、今回はこの「Homebrew」のインストールは割愛させていただきます。(Homebrewのインストールに関しての記事は既にたくさんあるため。)
手順
まず、「command+space」で「Terminal」と検索し、Terminal を起動。
そこで以下のように入力します。
brew install rlwrap
特に問題なければ、「rlwrap」がインストールされているはずなので、正常にインストールされたかを確認します。
$ rlwrap -v
rlwrap 0.43
こんな感じでバージョンが表示されれば大丈夫です。
あとは、pythonを実行する時に
$ rlwrap python a.py
と前に付け加えるだけです!
(python以外の言語では試していないのでわかりません!
ごめんなさい!)
おまけ
VScodeを使用している人だけにはなりますが、便利な設定がありますので紹介させていただきます。
まず、拡張機能の「Code Runner」をインストールします。
この拡張機能は対応している言語の実行を、再生ボタンを押すか、ショートカットキーでできるようになるため、非常に楽になる機能です。
インストールができたら、歯車のマークをクリックし、一番下の「Extention Settings」を選択します。
次に、「User」と「Workspace」とあると思いますが、
「User」の中の「Run in Terminal」にチェックを付けます。
次に、「Workspace」の方を選択します。
そして「Code-runner:Executor Map」という欄の中の「Edit in settings.json」をクリックします。
開いたsettings.json の中を探すと以下のようなコードがありますので、、
"python": "python -u",
これを次のように書き換えて保存します。
"python": "rlwrap python -u",
こうすることで、「Code Runner」でpythonを実行した際にも自動で「rlwrap」がつくので、毎回入力せずに済みます。