dou*_*BTV 10 command-line bash terminal mariadb
我一直在使用原始的 MySQL 客户端“eons”,而且我相当习惯于在其中使用类似 bash 的快捷方式。我最常用的一个是用来control-w
删除光标前的单词(就像你在 bash 中所做的那样)。
目前,使用我的 mariadb 客户端——如果我点击control-w
它会删除光标前的整行。(至少在 bash 中通常是control-u
)
因此,例如,在标准的 bash 提示符中尝试它......或者甚至在经典的 MySQL 命令提示符中,如果我有这样的一行:
SELECT a,b,c FROM table WHERE column='value'
Run Code Online (Sandbox Code Playgroud)
我的光标在WHERE
该行之前看起来像
WHERE column='value'
Run Code Online (Sandbox Code Playgroud)
当我真的期望它是:
SELECT a,b,c FROM WHERE column='value'
Run Code Online (Sandbox Code Playgroud)
我正在使用 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'
Run Code Online (Sandbox Code Playgroud)
我找不到对 maria 客户端配置选项的引用,例如 a.mariarc
或其他东西。我很乐意接受任何指点。
dou*_*BTV 16
我已经弄清楚需要做什么,我在 mysql 手册中的Mysql Tips 文章中找到了答案。
事实证明,行为取决于 MySQL 是针对哪个库编译的,readline
或者libedit
. 您可以使用.editrc
文件自定义行为。
就我而言,要control+w
按照我的预期工作,您将拥有一个如下所示的.editrc
文件:
bind "^W" ed-delete-prev-word
Run Code Online (Sandbox Code Playgroud)
如果您想查看键绑定是什么,只需将单词bind
放入.editrc
(或在现有.editrc
文件的末尾)