Edytor tekstu

Edytory, takie jak pokazany tutaj Leafpad , są często dołączane do systemów operacyjnych jako domyślna aplikacja pomocnicza do otwierania plików tekstowych.

Edytor tekstu to rodzaj programu komputerowego , który edytuje zwykły tekst . Takie programy są czasami nazywane oprogramowaniem „ Notatnik ” (np. Notatnik Windows ). Edytory tekstu są dostarczane z systemami operacyjnymi i pakietami programistycznymi i mogą być używane do zmiany plików, takich jak pliki konfiguracyjne , pliki dokumentacji i kod źródłowy języka programowania .

Zwykły tekst i tekst sformatowany

Istnieją istotne różnice między zwykłym tekstem (tworzonym i edytowanym przez edytory tekstu) a tekstem sformatowanym (takim jak tekst tworzony przez edytory tekstu lub oprogramowanie DTP ).

Zwykły tekst składa się wyłącznie z reprezentacji znaków. Każdy znak jest reprezentowany przez sekwencję o stałej długości jednego, dwóch lub czterech bajtów lub jako sekwencję o zmiennej długości od jednego do czterech bajtów, zgodnie z określonymi konwencjami kodowania znaków, takimi jak ASCII , ISO / IEC 2022 , Shift JIS , UTF-8 lub UTF-16 . Konwencje te definiują wiele znaków drukowalnych, ale także znaki niedrukowalne , które kontrolują przepływ tekstu, takie jak spacja , koniec wiersza i podział strony . Zwykły tekst nie zawiera żadnych innych informacji o samym tekście, nawet zastosowanej konwencji kodowania znaków. Zwykły tekst jest przechowywany w plikach tekstowych , chociaż pliki tekstowe nie przechowują wyłącznie zwykłego tekstu. Od początków komputerów zwykły tekst był (kiedyś z konieczności, a teraz zgodnie z konwencją) ogólnie wyświetlany przy użyciu czcionki o stałej szerokości , tak że wyrównanie w poziomie i formatowanie kolumnowe były czasami wykonywane przy użyciu białych znaków.

Z drugiej strony tekst sformatowany może zawierać metadane, dane dotyczące formatowania znaków (np. krój pisma, rozmiar, grubość i styl ), dane dotyczące formatowania akapitu (np. wcięcia, wyrównanie, rozmieszczenie liter i słów oraz odstępy między wierszami lub innymi akapitami) oraz dane specyfikacji strony (np. rozmiar, margines i kierunek czytania). Tekst sformatowany może być bardzo złożony. Tekst sformatowany można zapisać w formacie binarnym (np. DOC ), plikach tekstowych zgodnych z językiem znaczników (np. RTF lub HTML ) lub w formie hybrydowej obu (np. Office Open XML ).

Edytory tekstu są przeznaczone do otwierania i zapisywania plików tekstowych zawierających zwykły tekst lub wszystko, co można zinterpretować jako zwykły tekst, w tym znaczniki dla tekstu sformatowanego lub znaczniki dla czegoś innego (np. SVG ) .

Historia

Pudełko kart perforowanych z kilkoma taliami programów.

Zanim pojawiły się edytory tekstu, tekst komputerowy był dziurkowany na kartach za pomocą maszyn do dziurkowania . Fizyczne pudełka tych cienkich kartonowych kart zostały następnie włożone do czytnika kart . Pliki obrazów taśm magnetycznych , bębnów i dysków utworzone z takich talii kart często w ogóle nie miały znaków separacji linii i przyjmowały rekordy o stałej długości 80 lub 90 znaków. Alternatywą dla kart była taśma dziurkowana . Mogłaby zostać stworzona przez niektóre dalekopisy (takich jak dalekopis), który używał znaków specjalnych do wskazania końców rekordów. Niektóre wczesne systemy operacyjne zawierały wsadowe edytory tekstu, zintegrowane z procesorami językowymi lub jako oddzielne programy narzędziowe; jednym z wczesnych przykładów była możliwość edytowania SQUOZE dla SCAT w systemie operacyjnym SHARE .

Pierwsze interaktywne edytory tekstu były „edytorami liniowymi” zorientowanymi na terminale w stylu dalekopisu lub maszyny do pisania bez wyświetlaczy. Polecenia (często pojedyncze naciśnięcie klawisza) powodowały edycję pliku w wyimaginowanym punkcie wstawiania zwanym „kursorem”. Zmiany weryfikowano poprzez wpisanie polecenia drukowania niewielkiej części pliku i okresowo przez drukowanie całego pliku. W niektórych edytorach wierszy kursor można było przesuwać za pomocą poleceń określających numer wiersza w pliku, ciągi tekstowe (kontekst), których należy szukać, i ostatecznie wyrażenia regularne . Edytory linii były głównymi ulepszeniami w stosunku do dziurkowania. Niektóre edytory linii mogą być używane przez keypunch; polecenia edycji można było pobrać z talii kart i zastosować do określonego pliku. Niektóre popularne edytory linii obsługiwały tryb „weryfikacji”, w którym polecenia zmiany wyświetlały zmienione linie.

Kiedy terminale komputerowe z ekranami wideo stały się dostępne, powszechne stały się ekranowe edytory tekstu (czasami nazywane po prostu „edytorami ekranowymi”) . Jednym z najwcześniejszych edytorów pełnoekranowych był O26 , który został napisany dla konsoli operatora komputerów z serii CDC 6000 w 1967 roku. Innym wczesnym edytorem pełnoekranowym był vi . Napisany w latach 70. XX wieku nadal jest standardowym edytorem w systemach operacyjnych Unix i Linux . W latach 70. napisano także UCSD Pascal Edytor zorientowany na ekran, który został zoptymalizowany zarówno pod kątem wciętego kodu źródłowego, jak i ogólnego tekstu. Emacs , jeden z pierwszych projektów wolnego oprogramowania typu open source , to kolejny wczesny edytor pełnoekranowy lub działający w czasie rzeczywistym, który został przeniesiony na wiele systemów. Łatwość obsługi i szybkość edytora pełnoekranowego (w porównaniu z edytorami liniowymi) była motywacją do wielu wczesnych zakupów terminali wideo.

Podstawowa struktura danych w edytorze tekstu to ta, która zarządza łańcuchem znaków (sekwencją znaków) lub listą rekordów reprezentującą bieżący stan edytowanego pliku. Podczas gdy ten pierwszy mógł być przechowywany w jednej długiej, następującej po sobie tablicy znaków, zapotrzebowanie na edytory tekstu, które mogłyby szybciej wstawiać tekst, usuwać tekst oraz cofać / ponawiać poprzednie edycje, doprowadziło do opracowania bardziej skomplikowanych struktur danych sekwencji. Typowy edytor tekstu wykorzystuje bufor odstępów , połączoną listę wierszy (jak w PaperClip ), tabelę elementów lub rope , jako struktura danych sekwencji.

Rodzaje edytorów tekstu

Emacs, popularny wśród programistów edytor tekstu, działający w systemie Microsoft Windows
gedit to edytor tekstu dostarczany z GNOME

Niektóre edytory tekstu są małe i proste, podczas gdy inne oferują szerokie i złożone funkcje. Na przykład Unix i uniksopodobne mają edytor pico (lub wariant), ale wiele z nich zawiera również edytory vi i Emacs. Systemy Microsoft Windows są dostarczane z prostym Notatnikiem , chociaż wiele osób — zwłaszcza programistów — woli inne edytory z większą liczbą funkcji. W klasycznym systemie Mac OS firmy Apple Macintosh istniał natywny TeachText, który został później zastąpiony przez SimpleText w 1994 roku, który został zastąpiony w Mac OS X przez TextEdit , który łączy w sobie funkcje edytora tekstu z typowymi dla edytora tekstu, takimi jak linijki, marginesy i wybór wielu czcionek. Funkcje te nie są dostępne jednocześnie, ale muszą być przełączane poleceniem użytkownika lub przez program automatycznie określający typ pliku .

Większość edytorów tekstu może odczytywać i zapisywać pliki w formacie zwykłego tekstu, umożliwiając im otwieranie plików zapisanych w edytorach tekstu. Zapisywanie tych plików z edytora tekstu wymaga jednak upewnienia się, że plik jest zapisany w zwykłego tekstu i że żadne kodowanie tekstu lub ustawienia BOM nie zaciemnią pliku zgodnie z jego przeznaczeniem. Procesory tekstu inne niż WYSIWYG , takie jak WordStar , są łatwiej wprowadzane do użytku jako edytory tekstu i faktycznie były powszechnie używane jako takie w latach 80. Domyślny format pliku z tych edytorów tekstu często przypomina język znaczników, przy czym podstawowym formatem jest zwykły tekst i formatowanie wizualne osiągnięte przy użyciu niedrukowalnych znaków sterujących lub sekwencji specjalnych . Późniejsze edytory tekstu, takie jak Microsoft Word, przechowują swoje pliki w formacie binarnym i prawie nigdy nie są używane do edycji zwykłych plików tekstowych.

Niektóre edytory tekstu mogą edytować niezwykle duże pliki, takie jak pliki dziennika lub całą bazę danych umieszczoną w jednym pliku. Prostsze edytory tekstu mogą po prostu wczytywać pliki do pamięci głównej komputera . W przypadku większych plików może to być powolny proces, a cały plik może się nie zmieścić. Niektóre edytory tekstu nie pozwalają użytkownikowi rozpocząć edycji, dopóki wczytywanie nie zostanie zakończone. Wydajność edycji często spada również w niewyspecjalizowanych edytorach, a redaktor potrzebuje sekund, a nawet minut, aby odpowiedzieć na naciśnięcia klawiszy lub polecenia nawigacyjne. Wyspecjalizowani redaktorzy mają optymalizacje, takie jak przechowywanie w pamięci tylko widocznej części dużych plików, co poprawia wydajność edycji.

Niektóre edytory są programowalne, co oznacza, że ​​można je np. dostosować do określonych zastosowań. Dzięki programowalnemu edytorowi łatwo zautomatyzujesz powtarzalne zadania lub dodasz nową funkcjonalność, a nawet zaimplementujesz nową aplikację w ramach edytora. Jednym z częstych motywów dostosowywania jest zmuszanie edytora tekstu do używania poleceń innego edytora tekstu, z którym użytkownik jest bardziej zaznajomiony, lub powielanie brakujących funkcji, od których użytkownik jest zależny. Twórcy oprogramowania często używają dostosowań edytora dostosowanych do języka programowania lub środowiska programistycznego, w którym pracują. Programowalność niektórych edytorów tekstu ogranicza się do ulepszenia podstawowych funkcji edycyjnych programu, ale Emacsa można rozszerzyć daleko poza edycję plików tekstowych — do przeglądania stron internetowych, czytania wiadomości e-mail, czatu online, zarządzania plikami lub grania w gry i często jest uważany za środowisko wykonawcze Lispa z tekstowym interfejsem użytkownika . Emacsa można nawet zaprogramować tak, aby naśladował Vi , swojego rywala w tradycyjnych wojnach edytorskich kultury Unix .

Ważna grupa edytorów programowalnych używa języka REXX jako języka skryptowego. Te „ortodoksyjne edytory” zawierają „wiersz poleceń”, w którym można wpisywać polecenia i makra, oraz wiersze tekstowe, w które można wpisywać polecenia wiersza i makra. Większość takich edytorów jest pochodną ISPF/PDF EDIT lub XEDIT , flagowego edytora IBM dla VM/SP do z/VM . Wśród nich są THE , KEDIT , X2, Uni-edit i SEDIT .

Edytor tekstu napisany lub dostosowany do określonego zastosowania może określić, co użytkownik edytuje, i pomóc użytkownikowi, często uzupełniając terminy programistyczne i wyświetlając podpowiedzi z odpowiednią dokumentacją. Wiele edytorów tekstu dla programistów zawiera podświetlanie składni kodu źródłowego i automatyczne wcięcia , aby ułatwić czytanie i pisanie programów. Edytory programowania często pozwalają użytkownikowi wybrać nazwę pliku dołączanego , funkcji lub zmiennej , a następnie przejdź do jego definicji. Niektóre pozwalają również na łatwą nawigację z powrotem do oryginalnej sekcji kodu, przechowując początkową lokalizację kursora lub wyświetlając żądaną definicję w wyskakującym oknie lub tymczasowym buforze. Niektórzy redaktorzy sami implementują tę możliwość, ale często do lokalizowania definicji używane jest narzędzie pomocnicze, takie jak ctags .

Typowe cechy

  • Znajdź i zamień — Edytory tekstu zapewniają rozbudowane funkcje wyszukiwania i zastępowania ciągów tekstu, pojedynczo lub w grupach plików w otwartych kartach lub wybranym folderze. Zaawansowani edytorzy mogą używać wyrażeń regularnych do wyszukiwania i edytowania tekstu lub kodu. Dodatkowe funkcje mogą obejmować opcjonalną rozróżnianie wielkości liter , historię wyszukiwanych haseł do szybkiego przywoływania i autouzupełniania oraz wyświetlanie wielu wyników w jednym miejscu. [ potrzebne lepsze źródło ]
  • Wytnij, kopiuj i wklej — większość edytorów tekstu zapewnia metody powielania i przenoszenia tekstu w pliku lub między plikami.
  • Możliwość obsługi tekstu zakodowanego w UTF-8 .
  • Formatowanie tekstu — edytory tekstu często udostępniają podstawowe funkcje formatowania wizualnego, takie jak zawijanie wierszy , automatyczne wcięcia , formatowanie listy wypunktowanej przy użyciu znaków ASCII , formatowanie komentarzy , podświetlanie składni i tak dalej. Są one zwykle przeznaczone tylko do wyświetlania i nie wstawiają kodów formatowania do samego pliku.
  • Cofanie i ponawianie — podobnie jak w przypadku edytorów tekstu, edytory tekstu umożliwiają cofanie i ponawianie ostatniej lub więcej edycji. Często — zwłaszcza w przypadku starszych edytorów tekstu — zapamiętywany jest tylko jeden poziom historii edycji, a kolejne wydawanie polecenia cofnij spowoduje „przełączenie” tylko ostatniej zmiany. Nowoczesne lub bardziej złożone edytory zwykle zapewniają wielopoziomową historię, tak że wielokrotne wydawanie polecenia cofnij spowoduje przywrócenie dokumentu do kolejno starszych edycji. Oddzielne polecenie powtórzenia przełączy zmiany „do przodu” w kierunku najnowszych zmian. Liczba zapamiętanych zmian zależy od edytora i często jest konfigurowalna przez użytkownika.
  • Możliwość przeskoczenia do określonego numeru linii. [ potrzebne źródło ]

Zaawansowane funkcje

  • Definicja makra lub procedury: definiowanie nowych poleceń lub funkcji jako kombinacji wcześniejszych poleceń lub innych makr, być może z przekazanymi parametrami lub z zagnieżdżaniem makr.
  • Profile do zachowania opcji ustawionych przez użytkownika między sesjami edycji.
  • Makra profilu o nazwach określonych w np. środowisku, profilu, wykonywane automatycznie na początku sesji edycyjnej lub podczas otwierania nowego pliku.
  • Edycja wielu plików: możliwość edytowania wielu plików podczas sesji edycyjnej, być może zapamiętywania kursora bieżącej linii każdego pliku, wstawiania powtarzającego się tekstu do każdego pliku, kopiowania lub przenoszenia tekstu między plikami, porównywania plików obok siebie (być może z kafelkowym interfejsem wielu dokumentów ) itp.
  • Edytory z wieloma widokami: możliwość wyświetlania wielu widoków tego samego pliku, z niezależnym śledzeniem kursora, synchronizacją zmian między oknami, ale zapewniającą te same funkcje, które są dostępne dla niezależnych plików.
  • Zwiń/rozwiń, zwane także składaniem : możliwość tymczasowego wyłączenia fragmentów tekstu z widoku. Może to być oparte albo na zakresie numerów linii, albo na jakimś elemencie składniowym, np. wykluczenie wszystkiego pomiędzy BEGIN ; i pasujący KONIEC; .
  • Edycja oparta na kolumnach; możliwość zmiany lub wstawienia danych w określonej kolumnie lub przeniesienia danych do określonych kolumn.
  • Transformacja danych – odczytanie lub połączenie zawartości innego pliku tekstowego z aktualnie edytowanym plikiem. Niektóre edytory tekstu zapewniają sposób wstawiania danych wyjściowych polecenia wydanego w powłoce systemu operacyjnego . Ponadto funkcja zmiany wielkości liter może przekładać się na małe lub wielkie litery.
  • Filtrowanie — niektóre zaawansowane edytory tekstu pozwalają edytorowi na wysyłanie całości lub części edytowanego pliku do innego narzędzia i odczytywanie wyniku z powrotem do pliku w miejsce „filtrowanych” wierszy. Jest to przydatne na przykład do sortowania serii wierszy alfabetycznie lub numerycznie, wykonywania obliczeń matematycznych, wcinania kodu źródłowego i tak dalej.
  • Podświetlanie składni – kontekstowo podświetla kod źródłowy , języki znaczników , pliki konfiguracyjne i inny tekst, który pojawia się w zorganizowanym lub przewidywalnym formacie. Edytory zazwyczaj umożliwiają użytkownikom dostosowywanie kolorów lub stylów używanych dla każdego elementu języka. Niektóre edytory tekstu umożliwiają również użytkownikom instalowanie motywów i używanie ich w celu zmiany wyglądu i sposobu działania całego interfejsu użytkownika edytora .
  • Edytory zorientowane na składnię - niektóre edytory obsługują składnię jednego lub więcej języków i umożliwiają operacje w zakresie jednostki składniowej, np. wstawianie nowej klauzuli WHEN w instrukcji SELECT .
  • Rozszerzalność - edytor tekstu przeznaczony do użytku przez programistów musi zapewniać jakiś mechanizm wtyczek lub być skryptowalny , dzięki czemu programista może dostosować edytor o funkcje potrzebne do zarządzania poszczególnymi projektami oprogramowania, dostosowywania funkcjonalności lub przypisań klawiszy do określonych języków programowania lub systemów kontroli wersji , lub dostosować się do określonych stylów kodowania .
  • kursorem może się różnić w zależności od edytora tekstu. Na przykład dwukrotne naciśnięcie przycisku End może spowodować przejście do końca zawiniętej linii po tym, jak jedno naciśnięcie spowoduje przejście do końca wiersza tekstu na ekranie. Terminale zorientowane na bloki zazwyczaj mają dedykowane klawisze do poruszania kursorem, podobnie jak klawiatury na komputerach osobistych.
  • Linia poleceń - niektóre edytory, np. ISPF , XEDIT , mają na ekranie dedykowane pole do wprowadzania poleceń zamiast tekstu. W zależności od edytora, użytkownik może być zmuszony użyć klawiszy kursora do przełączania się między polem polecenia a polem tekstowym lub edytor może zinterpretować np. określone klawisze funkcyjne jako żądanie przełączenia.
  • Polecenia wierszy, znane również jako polecenia prefiksu lub polecenia sekwencji — niektóre edytory traktują plik jako tablicę wierszy tekstu z powiązanymi numerami wierszy lub kolejnymi numerami i mają osobne pole numeru wiersza dla każdego pola tekstowego. Polecenie wiersza to ciąg, który użytkownik wpisuje w polu numeru wiersza i który edytor rozpoznaje jako polecenie działające na tej konkretnej linii lub bloku wierszy, np. LC, aby przetłumaczyć wiersz na małe litery, )) 3 , aby przesunąć zablokuj prawe trzy kolumny. Niektóre edytory obsługują również makra linii, znane również jako makra przedrostków lub makra sekwencji. polecenia przedrostka nazwy , niektóre edytory zezwalają na wyświetlanie pola sekwencji po polu tekstowym.

Wyspecjalizowani redaktorzy

Niektóre edytory zawierają specjalne funkcje i dodatkowe funkcje, na przykład

  • Edytory kodu źródłowego to edytory tekstu z dodatkowymi funkcjami ułatwiającymi produkcję kodu źródłowego. Często zawierają one programowalne przez użytkownika funkcje podświetlania składni i nawigacji po kodzie, a także narzędzia do kodowania lub makra klawiaturowe podobne do edytora HTML.
  • Składane edytory . Ta podklasa obejmuje tak zwane „edytory ortodoksyjne”, które są pochodnymi Xedit. Edytory, które implementują składanie bez funkcji specyficznych dla programowania, są zwykle nazywane konspektami (patrz poniżej).
  • IDE (zintegrowane środowiska programistyczne) są przeznaczone do zarządzania i usprawniania dużych projektów programistycznych. Zwykle są używane tylko do programowania, ponieważ zawierają wiele funkcji niepotrzebnych do prostej edycji tekstu.
  • World Wide Web udostępnia się różne edytory HTML przeznaczone do tworzenia stron internetowych . Należą do nich: Dreamweaver , KompoZer i E Text Editor. Wiele z nich oferuje opcję przeglądania prac w toku we wbudowanym silniku renderującym HTML lub w standardowej przeglądarce internetowej .
  • Większość tworzenia stron internetowych odbywa się w dynamicznym języku programowania, takim jak Ruby lub PHP , przy użyciu edytora kodu źródłowego lub IDE. Kod HTML dostarczany przez wszystkie, z wyjątkiem najprostszych, statycznych witryn internetowych, jest przechowywany jako pojedyncze pliki szablonów , które są składane przez oprogramowanie sterujące witryną i nie tworzą kompletnego dokumentu HTML.
  • Matematycy, fizycy i informatycy często tworzą artykuły i książki przy użyciu TeX lub LaTeX w zwykłych plikach tekstowych. Takie dokumenty są często tworzone przez standardowy edytor tekstu, ale niektórzy używają wyspecjalizowanych edytorów TeX-owych .
  • konturówki . Nazywane również edytorami drzewiastymi, ponieważ łączą hierarchiczne drzewo konspektu z edytorem tekstu. Składanie (patrz wyżej) można uznać za wyspecjalizowaną formę konturowania.
  • Edytory współpracujące umożliwiają wielu użytkownikom jednoczesną pracę nad tym samym dokumentem ze zdalnych lokalizacji w sieci. Zmiany wprowadzone przez poszczególnych użytkowników są śledzone i automatycznie scalane z dokumentem, aby wyeliminować możliwość sprzecznych edycji. Redaktorzy ci zazwyczaj zawierają również czatu online do dyskusji między redaktorami.
  • Edytory wolne od zakłóceń zapewniają minimalistyczny interfejs, który ma na celu odizolowanie piszącego od reszty aplikacji i systemu operacyjnego, dzięki czemu może skupić się na pisaniu bez rozpraszania uwagi przez elementy interfejsu, takie jak pasek narzędzi lub obszar powiadomień .

Programowalne edytory można zwykle udoskonalić, aby wykonywały dowolną lub wszystkie z tych funkcji, ale prostsze edytory skupiają się tylko na jednym lub, podobnie jak gPHPedit , są ukierunkowane na jeden język programowania.

Zobacz też

Notatki

Linki zewnętrzne