在Linux和许多其他系统,导航终端时,您可以按Tab键到自动完成一个目录或文件名。自动完成在MySQL命令行客户端
我想知道是否有像在MySQL的终端东西。例如,如果我想要得到的someTableWithRidiculousLongName
说明我可以输入describe someTableW
然后标签,它会自动完成剩下的。
在MySQL终端中是否存在类似的东西?
在Linux和许多其他系统,导航终端时,您可以按Tab键到自动完成一个目录或文件名。自动完成在MySQL命令行客户端
我想知道是否有像在MySQL的终端东西。例如,如果我想要得到的someTableWithRidiculousLongName
说明我可以输入describe someTableW
然后标签,它会自动完成剩下的。
在MySQL终端中是否存在类似的东西?
启动MySQL控制台附加选项--auto-rehash
,即
mysql --auto-rehash -u root -p
我dnt知道为什么这不适合我!该选项卡仅被解释为一个选项卡,并且对自动完成没有任何作用。 –
@pjp - 此功能[不适用于常规Windows版本](http://stackoverflow.com/questions/269653/autocomplete-in-mysql-under-windows) –
谢谢!有很好的解释 –
您也可以自动完成基于命令历史记录。开始输入,然后调用绑定到ed-search-prev-history
和ed-search-next-history
的密钥。这适用于MySQL带有libedit支持的情况。默认的键盘绑定是Ctrl-P和Ctrl-N,但可以在.editrc中自定义。我的键为Ctrl +向上和Ctrl-下来例如:
# start typing, then press Ctrl-Up
bind "\e[1;5A" ed-search-prev-history
# start typing, then press Ctrl-Up, then Ctrl-Down
bind "\e[1;5B" ed-search-next-history
此前,MySQL的是基于readline的,然后history-search-backward
和history-search-forward
是正确的命令。然后通过.inputrc进行配置。同上例如:
# these are the key bindings for the readline library
# start typing, then press Ctrl-Up
"\e[1;5A": history-search-backward
# start typing, then press Ctrl-Up, then Ctrl-Down
"\e[1;5B": history-search-forward
所以,说你开始打字sel
和调用按Ctrl-向上,select * from some_long_table_name
会来,如果这是我刚才使用的命令。
有关自动翻版一些注意事项:
当您启用自动完成编辑MySQL的配置文件..
[mysql]
auto-rehash
您可以为所有用户或只为一个用户做到这一点:
/etc/my.cnf
:所有用户
~/.my.cnf
:实际用户
您还可以禁用自动补加:http://www.sysadmit.com/2016/08/linux-mysql-autocompletar.html
在OS X 10.11:
no-auto-rehash
摘自。6我如上所述设置了--auto-rehash,但它不起作用。 (这是OS X因此MySQL与BSD libedit库编译。)
然后我记得,我已经通过创建〜/ .editrc设置VI键绑定为MySQL客户端,包含一个行:绑定 - v。这很适合在mysql客户端中给我vi类导航,但是它破坏了列名完成(我可以通过删除.editrc来验证这一点)。
于是我研究了一点点,发现〜/ .editrc至少应该有下面几行:
bind -v
bind \\t rl_complete
有了这个附加线路,名完成正常工作的MySQL和六样,导航功能也。 (还有其他的.editrc设置可以大大提高mysql客户端的导航,但这不是开始讨论的主题的地方。)
感谢您的支持! – grocky
尝试mycli,https://github.com/dbcli/mycli – CodyChan