4

So, I started using zsh and oh-my-zsh recently. I am using the pure (refined) theme and the prompt shows extra info above the prompt.

When I clear the Terminal with Ctrl + L, the whole Terminal gets cleared but the line before the prompt that shows the current directory and git information also get cleared. When I type clear however, the line stays with the prompt while the Terminal gets cleared.

Is there a way to keep that line when I press Ctrl + L? What does that shortcut point to and how can I change it? In my Terminal preferences (I'm on Manjaro Budgie), that key binding is absent in the shortcuts list.

2
  • 1
    This doesn't happen when I use the pure theme; both clear and ^L draw the full 2-line prompt. You can see what ^L is bound to with bindkey | fgrep '^L'. It defaults to clear-screen, which you can read about in man zshzle. But I suspect there's something else at fault; it should work without any hacks. I'd test a different terminal emulator (xterm, sakura, Konsole). Then I'd create a clean .zshrc with only source /path/to/pure.zsh and see if that works. Then gradually add more of your other config back in until you find the piece that is breaking it. Commented Jun 29, 2018 at 18:59
  • Tilix also behaves the same way. I'll try modifying my .zshrc file. Commented Jun 30, 2018 at 5:12

1 Answer 1

6

Most likely those extra lines are output by precmd, the hook that is run after each command and before the prompt. It is not called automatically upon clear-screen (bound on ^L).

You could redefine clear-screen so it calls it though:

clear-screen() { echoti clear; precmd; zle redisplay; } zle -N clear-screen 
0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.