hedit
Wbudowany edytor HackerOS — dokumentacja v0.5
Czym jest hedit
hedit to terminalowy edytor tekstu wbudowany w system HackerOS, inspirowany nano. Napisany w Go, działa w trybie pełnoekranowym (alt screen), oferuje podświetlanie składni przez bibliotekę chroma, cofanie/ponawianie zmian, schowek systemowy oraz zestaw skrótów klawiszowych zbliżonych do nano. hedit jest dostępny wyłącznie jako część systemu HackerOS — nie jest dystrybuowany osobno.
Uruchomienie
| hedit plik.go | Otwiera plik.go w domyślnym motywie (monokai) |
| hedit --theme dracula plik.py | Otwiera z motywem Dracula |
| hedit --theme github plik.md | Jasny motyw GitHub |
Budowa ekranu
hedit dzieli ekran na cztery strefy:
2
3
4
5
6
7
8
import "fmt"
func main() {
msg := "hello, hedit"
fmt.Println(msg)
}
- Pasek tytułu — nazwa pliku, gwiazdka (*) gdy są niezapisane zmiany
- Obszar edycji — numery linii po lewej, podświetlona treść po prawej
- Pasek statusu — aktualny wiersz/kolumna, typ pliku, motyw
- Stopka pomocy — lista aktywnych skrótów klawiszowych
Tryby pracy
| Tryb | Opis | Wyjście |
|---|---|---|
| edit | Normalny tryb edycji tekstu | — |
| search | Wyszukiwanie frazy (Ctrl+W) | Esc lub Enter |
| replace | Znajdź i zamień (Ctrl+R) | Esc lub Enter×2 |
| gotoline | Przejście do linii (Ctrl+G) | Esc lub Enter |
| prompt | Pytanie o zapis przy wyjściu | Y / N / Ctrl+C |
Skróty — plik
| Skrót | Działanie |
|---|---|
Ctrl+O |
Zapisz plik (tworzy kopię .bak przed nadpisaniem) |
Ctrl+X |
Wyjdź — jeśli są zmiany, pyta o zapis (Y/N/^C) |
Ctrl+C |
Pokaż aktualną pozycję kursora (wiersz, kolumna) |
Skróty — nawigacja
| Skrót | Działanie |
|---|---|
↑↓←→ |
Ruch kursora o jeden znak / wiersz |
Ctrl+← |
Skocz o słowo w lewo NEW |
Ctrl+→ |
Skocz o słowo w prawo NEW |
Home / Ctrl+A |
Początek linii |
End / Ctrl+E |
Koniec linii |
PgUp / PgDn |
Strona w górę / w dół |
Ctrl+G |
Przejdź do podanego numeru linii |
Skróty — edycja tekstu
| Skrót | Działanie |
|---|---|
Enter |
Nowa linia z auto-wcięciem (kopiuje wiodące spacje/tabulatory) |
Tab |
Wstaw wcięcie (4 spacje lub tabulatory — zależy od trybu) |
Shift+Tab |
Usuń wcięcie (un-indent) |
Backspace |
Usuń znak przed kursorem; na początku linii — scal z poprzednią |
Delete |
Usuń znak za kursorem; na końcu linii — scal z następną |
Ctrl+D |
Duplikuj bieżącą linię NEW |
Ctrl+/ |
Przełącz komentarz linii (auto-prefix per język) NEW |
Skróty — zaznaczanie
| Skrót | Działanie |
|---|---|
Shift+↑/↓/←/→ |
Rozszerz zaznaczenie |
Ctrl+A |
Zaznacz cały plik NEW |
Zaznaczony tekst jest podświetlony szarym tłem. Wpisanie dowolnego znaku zastępuje zaznaczenie. Backspace / Delete usuwa zaznaczenie.
Skróty — schowek
| Skrót | Działanie |
|---|---|
Ctrl+K |
Wytnij — zaznaczenie lub całą linię |
Ctrl+P |
Kopiuj — zaznaczenie lub całą linię |
Ctrl+U |
Wklej ze schowka wewnętrznego |
Ctrl+Shift+C |
Kopiuj do systemowego schowka NEW |
Ctrl+Shift+V |
Wklej z systemowego schowka NEW |
Szukaj i zamień
| Skrót | Działanie |
|---|---|
Ctrl+W |
Otwórz pole szukania lub znajdź następne wystąpienie |
Ctrl+R |
Znajdź i zamień (globalna podmiana w pliku) NEW |
Jak działa Find & Replace
Po naciśnięciu Ctrl+R w stopce pojawia się dwuetapowy prompt:
- Find: wpisz szukaną frazę → Enter
- Replace with: wpisz zamiennik → Enter
Zamiana odbywa się globalnie (we wszystkich liniach pliku). W pasku statusu pojawi się liczba podmienionych wystąpień. Esc anuluje w każdym kroku.
Undo / Redo
| Skrót | Działanie |
|---|---|
Ctrl+Z |
Cofnij ostatnią operację |
Ctrl+Y |
Ponów cofniętą operację |
Szybkie pisanie (znaki wpisywane w odstępach < 500 ms) jest grupowane w jedną operację undo. Dzięki temu Ctrl+Z cofa całe „słowo", a nie pojedyncze litery.
Nowe funkcje — przegląd
Poniżej szczegółowy opis funkcji dodanych w v1.1.0, których brakowało względem nano:
Ctrl+/ — toggle komentarza
Automatycznie dobiera prefix w zależności od rozszerzenia pliku:
| .go .c .cpp .js .ts .java | // |
| .py .sh .bash .rb .yaml .yml .toml | # |
| .sql .lua | -- |
| inne | // (domyślnie) |
Jeśli linia już zaczyna się od prefiksu — zostaje on usunięty. Operacja jest dodawana do stosu undo.
Ctrl+D — duplikowanie linii
Kopiuje bieżącą linię bezpośrednio pod nią i przenosi kursor na kopię. Odpowiednik Ctrl+D z VS Code czy nano's duplicate z wbudowanych skryptów. Operacja jest cofalna przez Ctrl+Z.
Ctrl+A — zaznacz wszystko
Ustawia kotwicę zaznaczenia na początku pierwszej linii i kursor na końcu ostatniej linii pliku. Po zaznaczeniu działa kopiowanie, wycinanie lub zastąpienie wpisanym tekstem.
Ctrl+← / Ctrl+→ — skoki po słowach
Ctrl+← cofa kursor do początku bieżącego (lub poprzedniego) słowa, pomijając białe znaki. Ctrl+→ przesuwa do końca następnego słowa. Działa zgodnie ze standardem terminali i edytorów pokroju nano/vim.
Flagi startowe
| --theme <nazwa> | Wybór motywu kolorów. Domyślnie: monokai |
Motywy kolorów
hedit używa motywów biblioteki chroma (kompatybilnych z Pygments). Wybrane popularne motywy:
| monokai | Ciemny, klasyczny motyw Monokai (domyślny) |
| dracula | Ciemny motyw Dracula |
| nord | Zimny, północny motyw |
| github | Jasny motyw GitHub |
| solarized-dark | Ciemny Solarized |
| solarized-light | Jasny Solarized |
| vs | Visual Studio (jasny) |
| onedark | One Dark (ciemny) |
| autumn | Jesienny, ciepły motyw |