在Bash中绑定清除^ l

Léo*_* 준영 8 bash binding clear

我想有Ctrl-lclear我猛砸.

你怎么能绑定Ctrl-lclearBash中?

cha*_*aos 12

把它放在你的~/.inputrc:

C-L: backward-kill-line
Run Code Online (Sandbox Code Playgroud)

(假设"清除"表示"清除当前输入行";如果您的意思是"清除屏幕",则clear-screen代之以backward-kill-line).

  • `.inputrc`不是由bash*源*完全; 它不包含`bash`命令,它包含readline库配置指令.环境变量INPUTRC可用于覆盖`〜/ .inputrc`的默认位置; 可以想象,这可能是固定的.你需要开始一个新的"bash"才能生效; 它不会影响现有会话. (2认同)
  • 在我的系统上,CL默认为清除屏幕. (2认同)
  • `CL:clear-screen`对我来说也不起作用.但某个地方有人建议这样做:"\"Cl":'clear \n'` (2认同)

buf*_*ufh 5

在一个clear-screen对我也不起作用的特定情况下,我发现放入~/.bashrcline:bind -x $'"\C-l":clear;'"\C-l":'clear\n'in更好,~/.inputrc因为它清除了屏幕并将当前键入的命令留在原地;例如(^L显示我击中组合的位置):

随着"\C-l": clear-screen~/.inputrc

user@darkstar:~$ date^L
user@darkstar:~$ date
user@darkstar:~$ ^L
user@darkstar:~$ 
Run Code Online (Sandbox Code Playgroud)

随着"\C-l":'clear\n'~/.inputrc

user@darkstar:~$ date^L
-bash: dateclear: command not found
user@darkstar:~$ ^L
# screen effectively redrawn
Run Code Online (Sandbox Code Playgroud)

随着bind -x $'"\C-l":clear;'~/.bashrc

user@darkstar:~$ date^L
# screen redrawn and the top line is now:
user@darkstar:~$ date
Run Code Online (Sandbox Code Playgroud)

现在我无法获得与bind -x仅使用 inputrc 文件相同的结果......

编辑

我发现在某些情况下clear-screen对我不起作用是因为我试图在 CLI 中获得更多颜色。例如,我遇到了TERM=xterm-256color(orscreen-256color等)-256color的问题,移除部件解决了问题。

我还没有找到一种方式来获得沿着256个色项工作CTRL+ l(在xterm中,urxvt等)。