2008-10-07 9 views
7

Jestem dość nowy w programowaniu, ale zastanawiałem się, w jaki sposób edytory tekstu powłoki, takie jak vim, emacs, nano, itp. Są w stanie kontrolować okno wiersza polecenia. Jestem przede wszystkim programistą systemu Windows, więc może jest inaczej w * nix. O ile mi wiadomo, możliwe jest tylko drukowanie tekstu na konsoli i żądanie danych wejściowych. W jaki sposób redaktorzy tekstu tworzą nawigacyjne, edytowalne okno w środowisku wiersza poleceń?Jak działają edytory tekstu powłoki?

+0

Tworzenie edytora tekstowego w powłoce systemu Windows: wystarczy pobrać teraz darmową wersję podstawową Visual 1, można z łatwością utworzyć z niej klon edit.com.-LUB- Dla tych, którzy chcą tworzyć edytory w scenariuszach * nix/bsd/osx: ncurses ma do tego dobrą metodę, używając 'padów' do przechowywania całego dokumentu (lub do przechowywania największej możliwej ilości pamięci w pamięci przed buforowaniem), pozwala to zasadniczo skopiować "okno" bufora na ekran, a nawet go przewijać, wprowadzać tekst itp. Dobra książka do przeczytania to: Przewodnik programisty do NCurses ISBN 978-0470107591 (ncurses jest dużo łatwiejszy niż możesz pomyśleć!) – osirisgothra

Odpowiedz

9

Korzystając z bibliotek takich jak następujących składników, które z kolei postać użycie sekwencje

 
NAME 
     ncurses - CRT screen handling and optimization package 

SYNOPSIS 
     #include 

DESCRIPTION 
     The ncurses library routines give the user a terminal-independent 
method of updating character screens with reasonable optimization. This 
implementation is ‘‘new curses’’ (ncurses) and is the approved replacement 
for 4.4BSD classic curses, which has been discontinued. 

[...snip....] 

     The ncurses package supports: overall screen, window and pad 
manipulation; output to windows and pads; reading terminal input; control 
over terminal and curses input and output options; environment query 
routines; color manipulation; use of soft label keys; terminfo capabilities; 
and access to low-level terminal-manipulation routines. 

3

Istnieje stary protokół o nazwie vt100 oparty na terminalu "VT100". Używał kodów zaczynających się od ucieczki w celu kontrolowania pozycji kursora, koloru, czyszczenia ekranu itp.

To także sposób otrzymywania kolorowych monitów.

Google VT100 lub "Kody zaciskowe escape"

EDIT: I Googled go dla Ciebie: http://www.termsys.demon.co.uk/vtansi.htm

5

Krótka odpowiedź: istnieją bibliotek dla niego (jak przekleństwa, slang).

Dłuższa odpowiedź: wykonywanie czynności takich jak przeskakiwanie z kursorem lub zmiana kolorów odbywa się poprzez drukowanie specjalnych sekwencji znaków (nazywane sekwencjami escape, ponieważ zaczynają się one od znaku ESC).

3

będzie można również zauważyć to po wpisaniu „edytuj” w konsoli wiersza poleceń Windows. Ta "cecha" nie jest unikalna dla systemów uniksowych, chociaż koncepcje manipulowania konsolami Windows w ten sposób są zupełnie inne niż w systemie Unix.

0

Specyficzna dla systemu Windows aplikacja zazwyczaj wywołuje funkcje DOS lub BIOS, które robią to samo. Czasami obsługa kodu poleceń ANSI jest dostępna, czasami nie jest (w zależności od dokładnej wersji MS OS i tego, czy jest skonfigurowana do jej załadowania).

2

W systemach Unix okno konsoli emuluje stary terminal szeregowy (zwykle jest to VT100). Możesz drukować specjalne znaki kontrolne i sekwencje specjalne, aby przesuwać kursor, zmieniać kolory i wykonywać inne efekty specjalne. Istnieją biblioteki, które pomagają w obsłudze szczegółów; ncurses jest najbardziej popularna.

W systemie Windows [Win32 Console API] (http://msdn.microsoft.com/en-us/library/ms682073(VS.85%29.aspx) zapewnia podobną funkcjonalność, ale w dość różny sposób

2

typu "c: \ windows \ system32 \ Edycja". Lub „C: \ WINDOWS \ system32 \ edytuj "w wierszu poleceń, zostanie wyświetlony edytor tekstu wiersza poleceń:

Ludzie mają w większości rację co do znaku ESC używanego do sterowania ekranem poleceń, ale niektóre starsze programy również zapisują znaki bezpośrednio w pamięci przestrzeń używana przez ekran wiersza poleceń systemu Windows:

Aby sterować oknem wiersza poleceń, Kiedyś musieliście napisać własne formularze okienkowe, okienko wejściowe, menu itd. Trzeba by było również zawinąć to wszystko w dużą pętlę do obsługi zdarzeń.