mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決
MySQLでいちいちshow tables;とか打つのがだるい。\tみたいなalias設定できないのかなぁ
http://twitter.com/weboo/status/1658300902
おぉ、readlineのマクロを使えばいいのかー
http://twitter.com/weboo/status/1658314333
なるほ!ってことでちょっと設定してみました。
# ~/.inputrc $if mysql "\C-xd": "show databases;" "\C-xt": "show tables;" "\C-xu": "select user,host,password from mysql.user order by user,host;" "\C-xb": "select user,host,db from mysql.db order by user,host;" "\C-xc": "show create table TN\\G" $endif
$if applicationでmysqlコマンドだけで有効になるように。
pgsqlチックに\tとか\dとかだと、readlineの行編集のbindと被りまくるのでC-xでprefixするような感じで定義してみた。
MySQL 5.6では
MySQL 5.6のmysqlコマンドはreadlineではなくlibeditを使うようになったので、~/.editrcにこのように書けばOKです。
mysql:bind '^U' vi-kill-line-prev mysql:bind '^W' ed-delete-prev-word mysql:bind -s "^xd" "show databases;" mysql:bind -s "^xt" "show tables;" mysql:bind -s "^xu" "select user,host,password from mysql.user order by user,host;" mysql:bind -s "^xb" "select user,host,db from mysql.db order by user,host;" mysql:bind -s "^xc" "show create table TN\\\\G" mysql:bind -s "^xn" "select count(*) from ;" mysql:bind -s "^xv" "show variables like '%%';" mysql:bind -s "^xs" "show slave status\\\\G" mysql:bind -s "^xm" "show master status\\\\G" mysql:bind -s "^xp" "show full processlist;" mysql:bind -s "^xa" "show table status like 'TN'\\\\G"