¥eあるいはedit
mysqlの対話環境でちょっと長い処理を実行したくなった時のメモです。
mysqlコマンドを実行すると対話環境が起動します。ただ改行を含んだクエリを書こうとすると、どこか間違えた時に書き直すのが非常に面倒です。
そういった時は¥e
またはedit
コマンドを使うと便利です。コマンドを実行するとエディタが起動し直近に実行したクエリが表示されます。編集を行い保存して閉じるとコマンドを抜けて対話環境に戻ります。あとは;
を入力してエンターキーを押せば内容が実行されます。毎回エンターキーを押すのも面倒な場合は、¥e;
で実行します、この場合はエディタを閉じたら即時実行されます。
開くエディタは選べるようです。私の環境ではデフォルトはviでした。これは環境変数EDITOR
で設定できます。(export EDITOR=vim
とか設定しときました)
調べたいクエリがあった時に、
mysql> ¥e;
実行vim
が開くので挿入コマンド:a!
でコピーしてきたクエリをペーストする- 適宜修正して
:wq
でvim
を終了する - 結果を確認し、必要なら
1
に戻る
という感じで使っていました。
ちなみに¥e
を実行した時に編集しているファイルは/tmp
以下に作成されていることが確認できました、しかしこれはエディタを閉じると削除されるようです。ちゃんと取っておきたいなら保存した方がいいと思います。(vi
なら:w ~/hogehoge
など)
感想
(rails console
でもedit
コマンドが使えるみたいですirb
はダメか、コマンドが違うようです?)。他の対話環境ではどうなんでしょうか?
追記: 2017/01/13 - 今手元にあるrails 5
で試してみると、edit
コマンドは使えないみたいです。動作が確認できていた環境はすでに手を離れてしまったので再確認できません。。。何かわかり次第追記します。