Clear terminal window windows

Очистка экрана Clearing the Screen

Существует четыре способа очистки экрана в консольном приложении. There are four ways to clear the screen in a console application.

Пример 1 Example 1

Это рекомендуемый метод с использованием виртуальных последовательностей терминалов для всех новых разработок. This is the recommended method using virtual terminal sequences for all new development. Дополнительные сведения см. в обсуждении классических API консоли и виртуальных последовательностей терминалов . For more information, see the discussion of classic console APIs versus virtual terminal sequences .

Первый способ — настроить приложение для виртуальных выходных последовательностей терминала, а затем вызвать команду «очистить экран». The first method is to set your application up for virtual terminal output sequences and then call the «clear screen» command.

Дополнительные варианты этой команды см. в документации по виртуальным последовательностям, посвященной стиранию экрана . You can find additional variations on this command in the virtual terminal sequences documentation on Erase In Display .

Пример 2 Example 2

Второй метод — написать функцию для прокрутки содержимого экрана или буфера и задать заливку для видимого пространства. The second method is to write a function to scroll the contents of the screen or buffer and set a fill for the revealed space.

Это соответствует поведению командной строки cmd.exe . This matches the behavior of the command prompt cmd.exe .

Пример 3 Example 3

Третий метод заключается в написании функции для программного очистки экрана с помощью функций филлконсолеаутпутчарактер и филлконсолеаутпутаттрибуте . The third method is to write a function to programmatically clear the screen using the FillConsoleOutputCharacter and FillConsoleOutputAttribute functions.

Этот прием показан в следующем образце кода. The following sample code demonstrates this technique.

Советы и лайфхаки по Windows Terminal

Терминал Windows поставляется с множеством функций, которые позволяют настраивать его и взаимодействовать с ним наиболее удобным для вас способом. Давайте рассмотрим несколько советов и приемов, которые помогут вам настроить свой терминал так, чтобы он идеально вам подходил. На момент публикации этого сообщения в блоге Windows Terminal имел версию 1.3, а Windows Terminal Preview — версию 1.4.

При первом запуске

При первой установке Windows Terminal вы будете поприветствованы строкой Windows PowerShell. Терминал Windows по умолчанию поставляется с профилями Windows PowerShell, командной строки и Azure Cloud Shell.

В дополнение к этим профилям, если у вас установлены какие-либо дистрибутивы Подсистемы Windows для Linux (WSL), терминал также автоматически создаст профили для этих дистрибутивов. Если вы хотите установить дополнительные дистрибутивы WSL на свой компьютер, вы можете сделать это после установки терминала и при следующем запуске терминала профили для этих дистрибутивов должны появиться автоматически. Эти профили будут иметь значок Tux, однако вы можете изменить значок дистрибутива в своих настройках, чтобы он соответствовал любому дистрибутиву, который у вас есть. Вы можете найти дополнительную информацию о WSL на сайте с документацией WSL.

Примечание. Вам нужно будет загрузить значки дистрибутивов, поскольку они не поставляются внутри терминала.

Кастомизация

Терминал Windows поставляется с большим набором настроек по умолчанию, включая цветовые схемы и сочетания клавиш. Если вы хотите просмотреть файл настроек по умолчанию, удерживайте Alt и нажмите кнопку «Настройки» в раскрывающемся меню.

Читайте также:  Windows 10 как искать внутри файлов windows

Глобальные настройки профиля

Терминал Windows предоставляет вам возможность применить настройку к каждому профилю без необходимости дублировать настройку для каждой записи профиля. Это можно сделать, добавив параметр в массив «defaults» внутри объекта «profiles» . Список всех возможных настроек профиля можно найти на странице настроек профиля в нашей документации.

Кастомные цветовые схемы

Терминал Windows по умолчанию поставляется с набором цветовых схем. Однако, когда дело касается цветовых схем, есть неограниченные возможности. Отличное место для поиска дополнительных схем терминалов — terminalplash.com.

Если вы хотите создать свою собственную цветовую схему, terminal.sexy — отличный инструмент для создания и визуализации ваших собственных цветовых схем.

Совет. Вы можете сопоставить свою цветовую схему с фоновым изображением, используя палитру цветов PowerToys, чтобы получить коды цветов для использования в вашей схеме. PowerToys можно установить с помощью winget с winget install powertoys .

Настраиваемая командная строка

Вы можете придать стиль своей командной строке с помощью Oh my Posh и Terminal-Icons. Эти инструменты позволяют настроить внешний вид вашей командной строки с помощью цветов, глифов и смайликов. Чтобы запустить Oh my Posh с Posh-Git и PSReadline, следуйте этому руководству.

Oh my Posh недавно выпустили Oh my Posh 3, который имеет гораздо больше возможностей настройки и не является эксклюзивным только для PowerShell. Пройдя руководство, указанное выше, вы можете перейти на V3 с помощью следующей команды:

Вы можете добавить немного изюминки своей оболочке, добавив пользовательские значки с помощью значков терминала. На изображении ниже также используется настраиваемая тема Posh для добавления смайлов в строку.

Примечание. Для отображения значков терминала вам необходимо установить шрифт Nerd Font.

Олдскульный шрифт

Для тех из вас, кто является поклонником эффекта ретро-терминала, отличное место для поиска шрифтов старой школы находится на странице https://int10h.org/oldschool-pc-fonts/.

Места для фоновых изображений

Обои для рабочего стола часто отлично смотрятся в Windows Terminal в качестве фоновых изображений. Отличные места для поиска фоновых изображений — это темы Windows, а также WallpaperHub. Терминал Windows поддерживает как изображения, так и гифки для фоновых изображений.

Другой популярный вариант — размещение логотипа оболочки, которую вы используете в качестве фонового изображения, чтобы помочь определить, в какой оболочке вы находитесь. Вы можете указать, где будет размещаться фоновое изображение, с помощью «backgroundImageAlignment» в настройках. Дополнительную информацию о настройках фонового изображения можно найти в нашей документации.

Функции

аргументы командной строки wt.exe

Вы можете запустить свой терминал в определенной конфигурации с помощью команды wt.exe. Некоторые параметры, которые вы можете установить, — это расположение вкладок и панелей, а также их начальные каталоги и профили. Вы можете сохранить настраиваемую команду как ярлык и закрепить ее на панели задач, чтобы открыть желаемую конфигурацию.

Если вы используете команду wt.exe внутри палитры команд, она вступит в силу в вашем текущем окне терминала, вместо того, чтобы запускать новый экземпляр терминала.

В этом примере профиль PowerShell откроется в текущем рабочем каталоге на новой вкладке с вертикальной панелью, на которой будет запущен ваш профиль по умолчанию.

Full documentation about wt command line arguments can be found on our docs site.

Панели

Терминал Windows поддерживает панель для профилей. Вы можете открыть новую панель профиля, удерживая Alt и щелкнув профиль в раскрывающемся списке, или используя следующие сочетания клавиш:

  • Автоматическое разделение панели текущего профиля: Alt + Shift + D
  • Горизонтальное разделение панели профиля по умолчанию: Alt + Shift + Minus
  • Вертикальное разделение панели профиля по умолчанию: Alt + Shift + Plus

Вы также можете перемещать фокус по панелям, удерживая Alt и используя клавиши со стрелками. Наконец, вы можете изменить размер панелей, удерживая Alt + Shift и используя клавиши со стрелками. Дополнительную информацию о панелях можно найти на нашем сайте документации.

Читайте также:  Отменить установку обновлений при загрузке windows

Копи-паст

В Терминале Windows по умолчанию используются сочетания клавиш для копирования и вставки Ctrl + C и Ctrl + V , соответственно. Если у вас нет выделения, Ctrl + C будет действовать как обычно, как команда break.

Вы можете настроить, какие клавиши вы хотите использовать для «копировать» и «вставить» , редактируя привязки клавиш. Если вы удалите эти привязки клавиш из файла settings.json, терминал по умолчанию будет использовать Ctrl + Shift + C и Ctrl + Shift + V . Это может быть особенно полезно для пользователей WSL, которым нужны свободные Ctrl + C и Ctrl + V для своих оболочек.

Вы также можете выбрать, какое форматирование копируется в буфер обмена вместе с символами новой строки с помощью действий «copyFormatting» и «singleLine» , связанных с командой копирования. Полную документацию по командам интеграции с буфером обмена можно найти на нашем сайте документации.

Определение привязок клавиш и действий

Большая часть настраиваемых свойств внутри Windows Terminal зависит от привязок клавиш и действий. Команды внутри массива «actions» будут автоматически добавлены в вашу палитру команд. Если вы хотите также использовать их с привязками клавиш, вы можете добавить к ним «ключи» , чтобы вызывать их с клавиатуры. Полный список всех возможных команд можно найти на странице действий нашего сайта документации.

Отправка команд input

Терминал Windows дает вам возможность отправлять input в вашу оболочку с привязкой клавиш. Это можно сделать с помощью следующей структуры внутри массива «actions» .

Отправка ввода в оболочку с помощью сочетания клавиш может быть полезна для часто выполняемых команд. Одним из примеров может быть очистка экрана:

Также может быть полезен переход к родительскому каталогу с привязкой клавиш.

Вы также можете использовать эту функцию для запуска сборок или тестовых сценариев.

Начальный каталог WSL

, вы можете добавить следующую строку в настройки своего профиля, заменив DISTRONAME и USERNAME соответствующими полями.

How do you clear the console screen in C?

Is there a «proper» way to clear the console window in C, besides using system(«cls») ?

13 Answers 13

Well, C doesn’t understand the concept of screen. So any code would fail to be portable. Maybe take a look at conio.h or curses, according to your needs?

Portability is an issue, no matter what library is used.

This function will work on ANSI terminals, demands POSIX. I assume there is a version that might also work on window’s console, since it also supports ANSI escape sequences.

There are some other alternatives, some of which don’t move the cursor to <1,1>.

For portability, try this:

Then simply call clrscr() . On Windows, it will use conio.h ‘s clrscr() , and on Linux, it will use ANSI escape codes.

If you really want to do it «properly», you can eliminate the middlemen ( conio , printf , etc.) and do it with just the low-level system tools (prepare for a massive code-dump):

A workaround tested on Windows(cmd.exe), Linux(Bash and zsh) and OS X(zsh):

Using macros you can check if you’re on Windows, Linux, Mac or Unix, and call the respective function depending on the current platform. Something as follows:

Since you mention cls , it sounds like you are referring to windows. If so, then this KB item has the code that will do it. I just tried it, and it worked when I called it with the following code:

There is no C portable way to do this. Although various cursor manipulation libraries like curses are relatively portable. conio.h is portable between OS/2 DOS and Windows, but not to *nix variants.

The entire notion of a «console» is a concept outside of the scope of standard C.

Читайте также:  Драйвера для intel hd graphics family windows 10

If you are looking for a pure Win32 API solution, There is no single call in the Windows console API to do this. One way is to FillConsoleOutputCharacter of a sufficiently large number of characters. Or WriteConsoleOutput You can use GetConsoleScreenBufferInfo to find out how many characters will be enough.

You can also create an entirely new Console Screen Buffer and make the current one.

How to really clear the terminal?

I can issue the clear command or press Ctrl + L to clear the current Ubuntu terminal, but this just shifts previous output upwards and if you use mouse scroll or PgUP and PgDown keys it’s hard to distinguish where the output of previous command ends and output of current command begins.

Is there a way to really clear the terminal so I won’t see previous command results?

12 Answers 12

Yes, the command you’re looking for is

In contrast to clear , or Ctrl + L , reset will actually completely re-initialise the terminal, instead of just clearing the screen. However, it won’t re-instantiate the shell (bash). That means that bash’s state is the same as before, just as if you were merely clearing the screen.

As @Ponkadoodle mentions in the comments, this command should do the same thing more quickly:

From the other answers:

You can set a Keyboard Shortcut to reset the terminal, as explained by towolf.

If you’re running Kubuntu, and your terminal is Konsole, you need to go to Edit → Clear history, since reset doesn’t work the same way there, as UncleZeiv notes.

I was looking for this for a while and I found some genius that posted this:

Clears the whole screen buffer, very clean. Works on OS X and believe it works fine on most *nix terminals.

For curious, this part ‘\e[3J’ is a terminal escape command.

/.bashrc and add alias reset=»clear && printf ‘\e[3J'» – Michael Deal Aug 12 ’16 at 5:43

You can also assign a shortcut in gnome-terminal by going to Edit → Keyboard Shortcuts. I use Shift + Ctrl + Alt + C .

Cross posting my answer from stackoverflow.

Use the following command to do a clear screen instead of merely adding new lines .

yes that’s a ‘printf’ on the bash prompt.

You will probably want to define an alias though.

Explanation

So this becomes c which is the VT100 escape code for resetting the terminal. Here is some more information on terminal escape codes.

Here are a few other ways of doing it.

The above does not work on the KDE console (called Konsole) but there is hope! Use the following sequence of commands to clear the screen and the scroll-back buffer.

Or perhaps use the following alias on KDE.

I got the scroll-back clearing command from here.

run this command:

This has the same effect as launching a new terminal.

My favorite is printf «\ec» . This can also be printf «\033c» or printf «\x1bc» . That is an ansi escape sequence that miraculously clears the screen and buffer for the terminal output (for most standard terminals I have worked in it seems — I know it works in such as gnome-terminal, terminator, xterm, etc. on Ubuntu-like Linuxes)

I know this works in Linux Mint and Ubuntu 14.04, so I don’t know why people are appending and prepedning things like clear && echo -ne «\033c . printf «\ec» has always worked for me.

Additionally, in my .bashrc I have a binding like this:

Оцените статью