在.bashrc中为空格键绑定两条bind命令的实现问题
解决空格键同时插入空格与展开别名的问题
问题出在你用了shell的&&语法拼接readline命令,但bash的readline命令序列需要用分号;分隔,而非&&。直接用以下命令即可实现需求:
bind '" ": "self-insert; alias-expand-line"'
原理说明
self-insert:执行插入空格的基础操作,保证按下空格后能正常显示空格alias-expand-line:在插入空格后,自动展开当前输入的别名(如果输入内容是别名的话)- 分号
;是readline用来分隔多个命令的语法,能让两个命令按顺序执行
生效方式
把上述命令添加到~/.bashrc后,执行source ~/.bashrc即可立即生效。测试场景:
- 输入自定义别名(如
opbashrc)后按空格,会自动替换为vim ~/.bashrc(末尾带空格) - 输入非别名命令(如
cp)后按空格,仅插入空格,不影响正常使用
内容的提问来源于stack exchange,提问作者moskalenko2k24
相关产品推荐
相关产品推荐

