Po uruchomieniu wiersza polecenia w oknach można wpisać polecenie clear
, aby wyczyścić ekran. Jak zrobić to samo, gdy uruchamiasz prolog swipl (wpisując swipl
w wierszu polecenia) w oknach?Czyszczenie ekranu w Swipl prolog w oknach
Odpowiedz
Na terminalach UNIX istnieje zasób library(tty)
i ma on tty_clear/0
, ale terminale Windows nie obsługują biblioteki terminali. Jednak obsługują one ANSI Escape Codes.
Kody ucieczki to sekwencje znaków zaczynające się od ESC
(znak ucieczki), ASCII 0x1B = 27
. Większość zaczyna się od wprowadzenia sekwencji kontrolnej, która jest ucieczką, po której następuje lewa bracker: ESC [
, znana jako CSI
.
Więc można wydać sekwencję kodu na ekranie jasny, która jest ED (usuwanie danych) komenda, która przybiera postać:
CSI 2 J -- which expands to: ESC [ 2 J
Od SWI-Prolog to mogą być wydawane za pomocą format/2
prymitywny .
format('~c~s', [0x1b, "[2J"]). % issue CSI 2 J
Polecenie DE 2, pełna zacisk jasne na obsługę MS-DOS ANSI resetuje wskaźnik do górnej lewej, ale nie jest to konieczne w przypadku wszystkich terminali, tak, najlepiej w połączeniu z pojemnika (pozycji kursora), które jako reset do domu to po prostu: CSI H
.
format('~c~s~c~s', [0x1b, "[H", 0x1b, "[2J"]). % issue CSI H CSI 2 J
Aktualizacja: Uproszczenie
Dzięki @CapelliC dla alternatywnego i jaśniejszej formie, przy użyciu kodu \e
ucieczki do ucieczki!
Plain jasny ekran:
cls :- write('\e[2J').
Albo z resetem domu:
cls :- write('\e[H\e[2J').
- 1. Czyszczenie ekranu w IPython
- 2. Czyszczenie ekranu terminala?
- 3. Get rozmiar ekranu w pikselach w oknach tworzyć w C#
- 4. Prolog Programowanie w Ubuntu
- 5. Dowiązania symboliczne w oknach?
- 6. Zmień Tomcat w oknach
- 7. Terminy hilogowe w (XSB) Prolog
- 8. Czyszczenie katalogu kompilacji w setup.py
- 9. Czyszczenie łańcucha znaków w java
- 10. Czyszczenie CallContext w języku TPL
- 11. Czyszczenie rozwijanej listy w C#
- 12. instrukcje: programowa instalacja w oknach?
- 13. Asynchroniczne wykonywanie w oknach formularze
- 14. Jak zainstalować tykwę w oknach?
- 15. Unikalny identyfikator pliku w oknach
- 16. sprawdzenie pamięci przecieki w oknach
- 17. angularjs/UI - fokus w oknach
- 18. os.path.islink w oknach z pytonem
- 19. CONDITION_VARIABLE w oknach; wont kompilować
- 20. Wykryj liczbę rdzeni w oknach
- 21. Jest unikalny w chrome tabId w oknach
- 22. Czyszczenie ByteBuffer
- 23. Znak "Nie równe" w Visual Prolog?
- 24. Implementacja częściowej oceny w SWI-Prolog
- 25. Jak osadzić plik tabtip.exe w oknach
- 26. Prolog zapętlanie zmiennych wyników
- 27. pretty-print prolog termin
- 28. Cechy dobrego kodu Prolog?
- 29. Prolog: Losowe etykietowanie
- 30. Prolog predicate - nieskończona pętla
Niezły chwyt. Zapomniałem o sekwencjach ANSI. Możesz wyrazić ESC, jak \ e, a tym samym zapisać w pliku konfiguracyjnym SWI-Prolog procedurę: 'cls: - write ('\ e [2J'). 'Lub' cls: - write (' \ e [H \ e [ 2J '). ' – CapelliC
@CapelliC: Przydatne, nie wiedziałem, że obsługuje' \ e', znacznie czystsze wyrafinowanie. – Orbling
@CapelliC: '\ e' nie jest ISO i jest odrzucane przez GNU i SICStus. Zamiast tego użyj '\ 33 \'. – false