masablog

Keep it simple, stupid

Mycliが便利

tech

mycliが便利


MySQLのGUIクライアントはいろいろあるが、

mycliがあればGUIクライアントはいらないと思う。

これが普段使っているterminalで

1のペインにmycliを立ち上げっぱなしにしている。

2のペインは rails s とかのserver用のペインになっていて

3のペインでコマンドを叩くと4にfzfの候補が現れる感じになっている。

コードはemacsで書くのでこの裏にemacsがいる。

1のペインでhjklのvimキーバインドでmysqlのテーブル内を移動できるので

mysqlのテーブルを眺めながら開発できてよい。

ちょっとこみいってきたら1のペインで

C-j z (C-jはtmuxのprefix key)

を押すと一時的に1のペインが最大化されて以下のようになる。

もう一度 [prefix] z を押すともとの分割されたペインに戻る。

select * from table名

しておいて全体を見る。

たとえばこの国テーブルのなかでアジアの国だけ見たい時は

&Asia

と打ち込むとこのテーブル内にあるAsiaの候補だけをvimキーバインドで移動できるようになる。

いちいちSQLを書かなくてもざっくりと把握できて便利。

実態はlessなので / で検索もできるのでいちいち探さなくていい。

SQLはテーブル名カラム名構文など補完してくれる。

カラム名の補完はテーブル名が確定しないとできないので先にテーブル名を書くとよい。

テーブルを把握したいときは

select * from table名

でほとんどこと足りる。

テーブルの一覧は

show tables

でわかるのでこれ以外は補完に任せて覚える必要がない。

install


pip install --user mycli

–userでインストールするのは~/.localにインストールして

archlinuxのpython packageとコンフリクトしないようにするため

~/.local/binにPATHを通す .zshrcなどに書いておく

PATH="$HOME/.local/bin:$PATH"

左右の移動をvimキーバインドにするには

ホーム直下に.lesskeyを置いてlesskeyを実行する

~/.lesskey

l     right-scroll
h     left-scroll

mycliはlessを内部で利用しているのでlessの左右の移動をvimキーバインドにすればよい。

tmuxを開いたら分割されたペインになるようにする


毎回tmuxを立ち上げて分割されたペインを作るのはめんどうなので

立ち上げると自動で分割されたペインで起動するようにする。

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

.tmux.confの一番下に以下を追加

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# tmux-continuum
set -g @continuum-restore 'on'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

tmuxを再起動して[prefix]Iでプラグインをインストール

再起動すると15分に一回ペインの状態が保存され

tmuxのセッションが始まったら前回のペインが自動で立ち上がるようになる。

再起動しても動くのでとても楽でよい。

明示的にペインの状態を保存する場合は

[prefix] C-s

で現在のペインの状態を保存するので次回の起動時に利用されるようになる。

ちなみにpgcliもあるのでpostgresqlでも問題ない。

24 Mar 2018 #archlinux #linux #terminal #tmux

Related links
  • Ansible の handlers で複数の処理がしたい
  • ansible を快適にするコマンドを作る
  • systemd-nspawn で Centos と Debian コンテナを作る
  • github のリポジトリを作って作業をはじめるコマンド
  • markdown で全てのドキュメントを書くには?
  • これだけ覚えておけばいい Arch Linux のパッケージ管理
  • linux で新しいことをやる意欲を削がないために必要なこと
  • docker ではなく systemd-nspawn で作る web 開発環境
  • emacs25.1 の tramp が快適