在Bash中绑定清除^ l

时间:2009-07-14 20:56:53

标签: bash binding clear

我希望在我的Bash中Ctrl-l clear

如何在Bash中将Ctrl-l绑定到clear

2 个答案:

答案 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等中)。