我希望在我的Bash中Ctrl-l
clear
。
如何在Bash中将Ctrl-l
绑定到clear
?
答案 0 :(得分:12)
将其放入~/.inputrc
:
C-L: backward-kill-line
(假设“清除”表示“清除当前输入行”;如果您的意思是“清除屏幕”,则将clear-screen
代替backward-kill-line
)。
答案 1 :(得分:4)
在clear-screen
对我不起作用的特定情况下,我发现放入~/.bashrc
行:bind -x $'"\C-l":clear;'
优于"\C-l":'clear\n'
在~/.inputrc
中,因为它清除了屏幕并将当前键入的命令保留在原位;例如(^L
显示我点击组合的地方):
"\C-l": clear-screen
中的~/.inputrc
:
user@darkstar:~$ date^L
user@darkstar:~$ date
user@darkstar:~$ ^L
user@darkstar:~$
"\C-l":'clear\n'
中的~/.inputrc
:
user@darkstar:~$ date^L
-bash: dateclear: command not found
user@darkstar:~$ ^L
# screen effectively redrawn
bind -x $'"\C-l":clear;'
中的~/.bashrc
:
user@darkstar:~$ date^L
# screen redrawn and the top line is now:
user@darkstar:~$ date
目前我只能使用inputrc文件获得与bind -x
相同的结果......
我发现在某些情况下clear-screen
对我来说不起作用是由于我尝试在CLI中获得更多颜色。
例如,我遇到了TERM=xterm-256color
(或screen-256color
等)的问题,删除-256color
部分解决了问题。
我还没有找到一种方法来获得256色的术语 CTRL + l (在xterm,urxvt等中)。