我已经使用原始 MySQL 客户端“亿万年”了,而且我相当习惯在其中使用类似 bash 的快捷方式。我最常用的方法之一是使用control-w
删除光标之前的单词(就像在 bash 中所做的那样)。
目前,使用我的 mariadb 客户端——如果我点击control-w
它,就会删除光标之前的整行。 (至少在 bash 中通常是这样control-u
)
例如,在标准 bash 提示符中尝试一下......或者甚至在经典的 MySQL 命令提示符中尝试,如果我有这样的行:
SELECT a,b,c FROM table WHERE column='value'
我的光标位于WHERE
该行之前,如下所示
WHERE column='value'
当我真正期望它是:
SELECT a,b,c FROM WHERE column='value'
我使用的是 Fedora,安装的 Maria 版本是:
[doug@talos werk]$ sudo rpm -qa | grep -i maria mariadb-10.0.21-1.fc21.x86_64 mariadb-config-10.0.21-1.fc21.x86_64 mariadb-common-10.0.21-1.fc21.x86_64
其他快捷键按预期工作,control-a
分别control-e
转到行首和行尾,并control-[left arrow]
向左移动单词(或使用右箭头向右移动)
我正在运行客户端:
mysql -A --host=foo.local -u user -p'mypass'
我找不到对 maria 客户端配置选项的引用,例如 a.mariarc
或其他东西。我很乐意接受任何指点。
答案1
我已经弄清楚需要做什么,并且在中找到了答案mysql手册中的Mysql提示文章。
事实证明,该行为取决于 MySQL 是针对哪个库进行编译的,readline
或者libedit
.您可以使用文件自定义行为.editrc
。
就我而言,要control+w
按照我的预期工作,您将拥有一个.editrc
如下所示的文件:
bind "^W" ed-delete-prev-word
如果您想查看键绑定是什么,只需将单词放入bind
(.editrc
或现有文件的末尾.editrc
)