Hacker News new | past | comments | ask | show | jobs | submit login

If you've already got a working solution then I don't see why this is problem. The way you've conversed in this thread sounds like it's a daily annoyance for you.



It was one for several years, until I solved it like this. It was such an unnecessary waste of my time. And it would not have taken nearly that long if everyone's response to "how to clear the terminal on Linux" on Google wasn't "clear" or "Ctrl+L".


Your idiosyncratic opinion what "clear" means doesn't make the answers wrong. "clear" clears the terminal. If you'd asked what you meant, ie. "how to clear the terminal screen and scroll buffer on Linux" you'd might have found ALT+CTRL+L which does what you want on most terminal emulators. Or you could have read the man page https://man7.org/linux/man-pages/man1/clear.1.html and found that the E3 property is what you want to know about.


> Your idiosyncratic opinion what "clear" means

What? This is not my idiosyncratic opinion. This is literally what cls ("CLear Screen") does on Windows.


I may be mistaken, but aren't you the one complaining that "clear" only clears the screen area and not the scroll buffer on libvte terminals? Or are you complaining that a different command on a different operating system does something different than a similar sounding command on another operating system with a command that sounds like it would only clear the screen but actually does clear the scroll buffer, too?

By the way, did you know that up to and including some versions of MS Windows 10 "clear" in Powershell only cleared the screen, as did "cls" in cmd.com. Considering the name, that would actually be what I expect "cls" to do, but I digress. Since some later MS Windows 10 versions or the very least, MS Windows 11, Powershell and cmd.com do clear the screen and the scroll buffer on "clear" or "cls". That's due to newer versions of ConPTY.

Anyway, it was fun digging out this old knowledge. Thank you.


Googles response is correct though. The scroll back is a “new” concept introduced by terminal emulators. It’s not something that ever existed in hardware terminals or even early pseudo-terminals (like the default console Linux drops you into if you don’t have a GUI installed). It’s just something that desktop software added.

Because of this, there isn’t really any standardisation for how scrollback should work. Every terminal could implement it differently (albeit in practice there isn’t a whole lot of variation one can do to such a simple concept). So support for how you clear your scrollback is going to vary from one terminal emulator to another. As I demonstrated in an earlier comment with ‘reset’ not clearing the scrollback on one terminal in macOS.

Really there should be a dedicated ANSI escape code for doing this. There’s a few different codes for clearing the terminal already, one extra wouldn’t do any harm there. Plus xterm has already introduced the concept of bespoke codes for application terms like window title (something other terms have expanded on with codes to move the terminal window).

In fact, I’m going to create a code for just this and implement it in my own terminal emulator and others are welcome to adopt this as a new de facto standard if they wish.

Anyway, that’s the history of why you had such a hard time. None of this is intended to justify the status quo, and I do accept that this is all a bit frustrating to newcomers. But as I said before, I don’t agree the solution is to change the purpose of ‘reset’. Instead terminal emulators should be supporting new functionality to manage something that they added to the paradigm — and to be fair, most terminal emulators already do.


> It’s not something that ever existed in hardware terminals or even early pseudo-terminals (like the default console Linux drops you into if you don’t have a GUI installed).

FWIW, the default Linux console had scrollback until a few years ago when it was removed in Linux 5.9.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...


I did not know that. Thanks for the share.

Linus' comments on that commit are interesting to note too. Because, in my opinion, they add weight to the comments made on here regarding the annoying non-standardised complexities to terminal scrollback.

I think that is the real problem here.


There is an escape code that does clear screen and scrollback invented by xterm \e3J. And kitty invented one that clears screen into scrollback \e22J. https://sw.kovidgoyal.net/kitty/conf/#shortcut-kitty.Reset-t...


Thanks for sharing. I’ll add that to my own $TERM




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: