PuTTY: очистити прокрутку з командного рядка


27

Коли я підключаюся до свого сервера через PuTTY, я можу очистити видимий екран за допомогою clearкоманди.

Однак я все ще можу прокрутити назад у графічному інтерфейсі PuTTY, щоб побачити старі речі. Мені відомо про функцію очищення прокрутки PuTTY , але це вимагає клацання мишкою.

Я хотів би виконати таку саму операцію "Очистити прокрутку", але з командного рядка.

Це можливо?

Я читав цей сайт , який, здається, так вказує.

Однак мої експерименти провалилися. Наприклад:

printf '\033[3J'

Нічого не робить для мене.

Я, можливо, не розумію значення CSI 3 Jцього другого посилання, хоча ...


Яку версію PuTTY ви використовуєте? На сторінці вказано, що функція працює в PuTTY 0.59 і вище. У мене є PuTTY 0,60, і він працює на мене. Зверніть увагу, що він очищає лише буфер прокрутки, він не очищає екран. (Якщо у мене є смуга прокрутки, яку я фактично можу прокручувати, то використовую цю послідовність. Я помічаю, що панель прокрутки стає відключеною, оскільки для прокрутки раптом немає нічого доступного. Але екран, який відображається в даний час, залишається на місці.)
Bavi_H

@Bavi_H: ах, дякую - я не розумів, що це не вплине на текст, що відображається в даний момент. Я бачу, що це теж працює. Хочеться повного рішення clear && printf '\033[3J'. Якщо ви зробите відповідь, я прийму це.
jwd

Відповіді:


32

CSI 3 JПослідовність для очищення буфера прокрутки була додана в PuTTY 0.59. (На сторінці запиту побажань для цієї функції перегляньте рядок "фіксований" або перейдіть на сторінку змін у PuTTY та знайдіть пошук CSI 3 J.)

Як було зазначено jwd, ви можете ввести printf '\033[3J'в командний рядок, щоб надіслати цю послідовність PuTTY. Пам’ятайте, що це очищує лише буфер прокрутки, він не очищає екран. Якщо у вас є смуга прокрутки, яку ви можете насправді прокручувати, то скориставшись цією послідовністю, ви побачите, що смуга прокрутки стає відключеною, оскільки раптом для прокрутки немає нічого. Але відображається в даний час екран залишається на своєму місці.

Як було зазначено у jwd, ви можете очистити як екран, так і буфер прокрутки, використовуючи clear && printf '\033[3J'


А для тих, хто шукає легкого ознайомлення з контрольними кодами: xfree86.org/4.8.0/ctlseqs.html (: Цей у - вCSI P s J
jwd

11

Якщо ви звикли, як і я, використовувати Ctrl+Lдля Reset terminalопції, доступної в системному меню PuTTY, то, можливо, вам буде корисно включити Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Потім, коли ви натискаєте Alt+Space, опція для "Clear scrollback"ініціюється L(малі літери; немає зсуву). Таким чином, reset + clearстає чарівно-мнемонічним поєднанням Ctrl+Lі Alt+Space Lбез будь-якого примхливого линяння чи безладу в історії вашої оболонки.


Працює і легко запам'ятовується :)
Вірмвуд

Непогано, хоча FYI: ви також можете запобігти захаращуванню історії вашої оболонки, встановивши команду пробілом.
jwd

6

Створіть файл сценарію та помістіть його в папку, що включає шлях:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

Натисніть CTRL + d, щоб зберегти та вийти

Зміна дозволу на файл:

chmod a+x /usr/local/bin/cls

Тепер ви можете використовувати cmd cls :-)


1

Для мене було рішення передати символи '\ 033 \ 143':

printf ("\ 033 \ 143");

Це очищає екран терміналу і повертає курсор назад у лівий верхній кут.


1
(1) Питання задає командний рядок (тобто оболонку). Це не командна оболонка, це рядок коду С; як таке, це не відповідь на це запитання. (2) Ця публікація виявиться трохи кориснішою, якби ви сказали, що таке \143персонаж, і як він стосується цього питання, в ідеалі з цитатами.
Скотт

1
Для тих, хто цікавиться, це відповідає коду втечі "повного скидання" ( ESC c). ASCII cмає значення 99вісімкової 143. Це зробить ще безліч речей, крім очищення прокрутки, просто FYI.
jwd

1

Існує опція в шпаклівці, де можна зняти прапорець для прокрутки за замовчуванням. Просто зніміть прапорець "Висунути стертий текст у прокрутку".

Зображення налаштувань шпаклівки

Після цього, коли ви видасте команду очищення, вона видалить екран і не помістить попередній вміст екрана в прокрутку назад.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.