Úprava súborov
Keď potrebujete súbor zmeniť, nielen si ho pozrieť, Peach Commander ho otvorí vo vstavanom editore. Textové a kódové súbory sa otvárajú v plnom editore so zvýrazňovaním syntaxe, hľadaním a nahrádzaním, prehľadom symbolov vo vašom kóde a minimapou pre rýchlu navigáciu. Binárne súbory možno otvoriť v samostatnom šestnástkovom editore, kde môžete kontrolovať a meniť jednotlivé bajty. Nikdy nemusíte opustiť aplikáciu kvôli rýchlej úprave.
Upravte textový alebo kódový súbor¶
- V ktoromkoľvek paneli presuňte kurzor na súbor, ktorý chcete zmeniť.
- Stlačte F4, alebo vyberte Súbor ▸ Upraviť. Súbor sa otvorí v okne editora.
- Vykonajte zmeny. Ak je súbor rozpoznaný programovací alebo dátový formát, kľúčové slová, reťazce a komentáre sa automaticky zafarbia.
- Stlačte Cmd+S (alebo kliknite na Uložiť) na zapísanie zmien. Prvé uloženie uchová zálohu originálu vedľa súboru, takže sa k nej vždy môžete vrátiť.
Na začatie úplne nového textového súboru na aktuálnom mieste stlačte Shift+F4.
(Obrázok: editor so zvýrazňovaním syntaxe, prehľadom symbolov vľavo a minimapou vpravo.)
Ak súbor patrí root — záznam v /etc, launchd plist, konfigurácia webového servera —, uloženie navrhne urobiť to ako správca: macOS požiada o autorizáciu ako obvykle, obsah sa predá cez privátny dočasný súbor namiesto príkazového riadku a súbor si ponechá vlastného vlastníka aj práva namiesto toho, aby sa tichom stal vaším.
Ak do súboru nemožno zapisovať, dozviete sa to pri otvorení, a nie až pri ukladaní: titulok nesie zámok a stavový riadok pomenuje prekážku — patrí inému používateľovi, oprávnenia zápis zakazujú, uzamknutý súbor, svazok len na čítanie alebo ochrana systémom. Len prvú z nich možno vyriešiť autorizáciou uloženia a len tam sa ponúka; pri ostatných by vás stála heslo a aj tak by zlyhala.
Okraj zobrazuje čísla riadkov, riadok s kurzorom svetlejšie než ostatné; tlačidlo vedľa nabídky kódovania ho skryje. Zalomený riadok je číslovaný raz, takže číslo vždy znamená ten istý riadok, ktorý má na mysli chyba kompilátora alebo poznámka z revízie.
Hľadanie, nahrádzanie a navigácia¶
- Stlačte Cmd+F na otvorenie lišty hľadania. Na nahradenie textu otvorte lištu hľadania a prepnite ju na zobrazenie nahrádzania, alebo kliknite na Hľadať/Nahradiť na paneli nástrojov.
- Kliknite na Formátovať JSON/XML na opätovné odsadenie dokumentu JSON alebo XML do čistého, čitateľného rozloženia.
- Kliknite na Symboly (alebo stlačte Cmd+Shift+O) na zobrazenie bočného panela, ktorý uvádza triedy, funkcie a metódy vo vašom kóde — alebo, pri súbore JSON, YAML či XML, jeho kľúče a prvky. Kliknite na položku na priamy skok na ňu. Na čo ešte tá štruktúra je, pozri Práca s JSON, YAML a XML.
- Stlačte Cmd+L na skok na konkrétny riadok.
- Stlačte Cmd+\ na skok medzi zátvorkou a jej zodpovedajúcim partnerom.
- Kliknite na tlačidlo mapy na zobrazenie alebo skrytie minimapy, zmenšeného prehľadu celého súboru, na ktorý môžete kliknúť na posun.
- Použite ponuku Kódovanie na paneli nástrojov, ak bol súbor uložený v inom ako predvolenom kódovaní textu.
Práca s JSON, YAML a XML¶
Tieto tri formáty majú vlastné zaobchádzanie, pretože konfiguračným súborom sa prechádza podľa štruktúry, a nie podľa čísel riadkov.
Bočný panel Symboly uvádza kľúče súboru JSON alebo YAML a prvky súboru XML, vnorené tak ako dokument sám. Prvok sa pomenuje podľa atribútu id, name alebo key, ak ho má, takže dvadsať položiek <server> sa dá rozlíšiť. Zoznam zobrazuje svoje položky ako [0], [1], a kde položka začína kľúčom, je uvedený aj ten — [0] name. Filtračné pole nad zoznamom nájde kľúč podľa názvu v súbore akejkoľvek veľkosti a stavový riadok vždy zobrazuje cestu k tomu, v čom stojí kurzor.
Aj poškodený súbor dostane prehľad až po miesto, kde sa rozbije — a práve tam je najviac potrebný.
Ponuka Štruktúra — v paneli ponúk, kým je editor vpredu — vás touto štruktúrou presúva:
- Prejsť na obklopujúci uzol (Ctrl+Cmd+Nahor) vyjde k bloku, ktorý obsahuje kurzor: od
image:k službe, ku ktorej patrí. - Prejsť na prvého potomka (Ctrl+Cmd+Nadol) vojde dovnútra.
- Prejsť na predchádzajúceho / ďalšieho súrodenca (Ctrl+Cmd+Vľavo / Vpravo) sa pohybuje medzi položkami tej istej úrovne a preskočí celý blok medzi nimi — z jedného servera na ďalší bez prechádzania štyridsiatich riadkov nastavení.
- Vybrať obklopujúci uzol (Ctrl+Cmd+A) vyberie blok, v ktorom stojí kurzor. Stlačte znova a výber sa rozšíri na blok okolo, takže vyberiete presne jednu službu alebo presne jeden prvok bez ťahania myšou.
- Kopírovať štruktúrnu cestu (Ctrl+Cmd+C) skopíruje pozíciu ako výraz, ktorý prijímajú nástroje daného formátu:
.services.web.ports[0]pre JSON a YAML, ako to očakávajújqayq, a//server[@id='web-1']/portpre XML, teda XPath. Kľúče, ktoré nie sú obyčajné slová, sa za vás uzavrú do úvodzoviek —."content-type"a nie.content-type, čo vjqznamená niečo úplne iné. - Skontrolovať dokument (Ctrl+Cmd+V) skontroluje súbor a postaví kurzor na problém, s dôvodom v titulku okna. Ohlási aj to, čo žiadny iný nástroj v reťazci neohlási: duplicitný kľúč, ktorý každý parser JSON tichu prijme a jednu z oboch hodnôt zahodí, a čiarku na konci, ktorú parser od Applu prijme, ale Python, Go a
jqodmietnu.
Dlhé súbory sa čítajú tak, že sa zbalí to, na čom sa práve nepracuje. Zbaliť uzol (Alt+Cmd+Vľavo) zbalí blok, v ktorom stojí kurzor — najbližší, ktorý má telo, takže stlačenie na jedinom riadku zbalí mapovanie okolo neho —, Rozbaliť uzol (Alt+Cmd+Vpravo) ho znova otvorí, Zbaliť najvyššiu úroveň (Alt+Cmd+Nahor) zbalí pre prehľad všetko na najvyššej úrovni a Rozbaliť všetko (Alt+Cmd+Nadol) to obnoví. Riadok s kľúčom alebo značkou zostáva viditeľný a je označený, takže zbalený blok je viditeľne zbalený; čísla riadkov preskočia to, čo je skryté. Z dokumentu sa nič neodoberá — text sa iba nekreslí, takže uloženie, vrátenie a hľadanie zostávajú bez zmeny a hľadanie nájde text aj v zbalenom bloku. Umiestnenie kurzora do zbaleného miesta ho otvorí a akákoľvek úprava otvorí všetko: zbalenie je dvojica pozícií a vložený text ich posunie.
Tá istá ponuka nesie prevody, ktoré prepíšu celý dokument — alebo, ak je vybraný text, len ten — v jedinom kroku, ktorý sa dá vrátiť: Zmenšiť (jeden riadok) pre telo JSON, ktoré sa musí zmestiť do príkazu curl, Rekurzívne zoradiť kľúče, aby dva výstupy tých istých nastavení nevykazovali žiadny rozdiel, Zakódovať ako reťazec JSON a Dekódovať reťazec JSON pre každodennú prácu vložiť certifikát, skript alebo celý dokument JSON do poľa JSON, a Previesť JSON na YAML. Zmenšenie zachováva poradie kľúčov a presný zápis každého čísla, pretože 1.0 a 1 nie sú tá istá verzia; zoraďovanie to zámerne nerobí, keďže zoradiť znamená preskládať. Kódovanie platí pre akýkoľvek súbor, nielen pre JSON. Z YAML do JSON nič nie je a je to rozhodnutie: vyžadovalo by parser YAML, ktorý v systéme nie je, a chybný odhad o kotve alebo o true v úvodzovkách urobí z konfiguračného súboru iný.
Pri JSON a XML súbor kontroluje skutočný parser. Pre YAML žiadny v systéme nie je, takže kontrola pokrýva chyby, ktoré sa dajú nájsť aj bez neho — tabulátor použitý na odsadenie, čo YAML výslovne zakazuje, odsadenie, ktoré nezodpovedá ničomu, duplicitný kľúč, neuzavretú úvodzovku — a povie to namiesto toho, aby súbor vyhlásila za platný.
Filtrovanie príkazom shellu¶
Kliknite na Filtrovať… (alebo stlačte Shift+Cmd+), aby ste vybraný text poslali cez príkaz a nahradili ho tým, čo príkaz vypíše. Ak nie je nič vybrané, prejde celý dokument. Z nástrojov, ktoré už poznáte, sa tak stanú príkazy editora: sort -u odstráni duplicitné riadky, jq . sprehľadní odpoveď vo formáte JSON, column -t zarovná tabuľku, base64 -d dekóduje blok, openssl x509 -noout -text vypíše certifikát v čitateľnej podobe.
Príkaz beží vo vašom prihlasovacom shelle: PATH, aliasy aj funkcie fungujú presne ako v Termináli a rúry aj úvodzovky znamenajú to, čo očakávate. Pracovným adresárom je zložka upravovaného súboru, takže relatívne cesty sa vyhodnotia tam, kde to čakáte. Použité príkazy sa pamätajú a nabudúce sa ponúknu v rozbaľovacom zozname.
Ak príkaz zlyhá, váš text zostane nedotknutý a chybové hlásenie príkazu sa zobrazí v stavovom riadku — syntaktická chyba nástroja jq nikdy neskončí vložená do vášho súboru. Príkaz, ktorý nič nevypíše, vyprázdni výber; presne na to sa filtrovanie nástrojom grep používa a Cmd+Z ho vráti. Príkaz, ktorý sa nedokončí, sa po dvadsiatich sekundách ukončí.
Riadky zoradiť, odstrániť duplikáty a upraviť¶
Menu Riadky — na paneli nástrojov a, kým je editor vpredu, aj v hlavnej nabídke — vykonáva úpravy, ktoré prichádzajú znova a znova, bez napísaného príkazu a bez nainštalovaného nástroja:
- Zoradiť A→Z alebo Z→A, pričom čísla sa porovnávajú podľa hodnoty, takže
file9je predfile10. - Obrátiť poradie riadkov.
- Odstrániť duplicitné riadky, z každého ponechať prvý a ostatné nechať v ich poradí.
- Odstrániť prázdne riadky vrátane tých, ktoré len vyzerajú prázdne, pretože obsahujú medzery.
- Odstrániť medzery na konci riadkov — neviditeľný rozdiel, pre ktorý je diff neprehľadný.
- Ponechať len riadky obsahujúce text, ktorý zadáte, alebo ich naopak odstrániť.
Ak je text vybraný, každá z operácií pracuje na vybraných riadkoch; výber sa najprv rozšíri na celé riadky, pretože zoradiť pol riadku nemá zmysel. Bez výberu platia pre celý dokument. Každá je jediným krokom vrátenia, takže Cmd+Z vezme späť celú operáciu.
Konce riadkov sú vedľa nabídky Kódovanie: LF pre Unix a macOS, CRLF pre Windows, CR pre klasický Mac OS a (mixed), keď jeden súbor obsahuje viac druhov — často príčina chyby, ktorá nedáva zmysel. Výberom iného prevediete celý súbor jedným krokom, ktorý sa dá vrátiť. Operácie s riadkami koniec riadku nikdy nemenia samé od sebe: zoradený súbor s CRLF zostane CRLF.
Formátovanie súboru¶
Kliknite v editore na Formátovať (rovnaký príkaz je aj v prehliadači) a súbor sa znovu odsadí. Peach Commander vyberie formátovač podľa prípony a v stavovom riadku ukáže, ktorý to bol, napríklad formatted (jq) — takže vždy viete, čo výsledok stvárnilo.
Bez inštalácie čohokoľvek: JSON, XML, SVG, plisty, HTML, konfigurácia v štýle INI a YAML. YAML je zvláštny prípad: uprace sa, namiesto toho aby sa znovu odsadil, pretože v YAML je odsadenie štruktúrou a prepísať ho bez skutočného parsera YAML by mohlo zmeniť význam súboru. Medzery na konci riadka zmiznú, zabudnuté tabulátory v odsadení sa stanú medzerami, série prázdnych riadkov sa skrátia — a všetko v blokovom skaláre (| alebo >) zostane presne tak, ako je, pretože tam je biely znak obsahom.
Lepšie formátovače prevezmú vládu automaticky. Ak máte niektorý z nich, Peach Commander použije ho, pretože špecializovaný nástroj obvykle odpovedá tomu, čo očakáva okolný ekosystém — a pri konfiguračných formátoch zachová vaše komentáre:
| Nainštalujte | a získate |
|---|---|
yq alebo prettier |
plné formátovanie YAML, komentáre zachované |
taplo |
TOML |
sqlformat alebo sql-formatter |
SQL |
prettier |
Markdown |
jq |
JSON v obvyklom štýle |
xmllint |
XML a SVG |
Ak typ súboru nemá formátovač, tlačidlo je zosivené a položka nabídky vypnutá. Pokus vám aj tak povie prečo — „taplo nie je nainštalovaný“ sa čita inak než „Neplatný JSON“.
Použitie vlastného formátovača¶
Ak chcete formátovať typ, ktorý Peach Commander nepozná, alebo použiť iný nástroj, vytvorte v konfiguračnej zložke formatters.ini — jedna sekcia na príponu:
[swift]
tool = swiftformat
args = --quiet stdin
[sql]
tool = /opt/homebrew/bin/sqlfluff
args = format -
tool je meno spustiteľného programu (hľadá sa ako vo vašom shelle) alebo absolútna cesta; args sa predajú bez úprav. Text súboru ide dovnútra štandardným vstupom a formátovaný text sa čita zo štandardného výstupu, takže funguje každý dobre vychovaný formátovač z príkazového riadku. Vaše záznamy vyhrávajú nad všetkými ostatnými. Pri prvom spustení sa vytvorí okomentovaná šablóna — otvorte súbor a doplňte ju.
Formátovače môžu dodávať aj zásuvné moduly — pozri Plugins.
Upravte súbor bajt po bajte¶
- Vyberte súbor v paneli.
- Vyberte Súbor ▸ Upraviť ako šestnástkové (alebo kliknite pravým tlačidlom na súbor a vyberte Upraviť ako šestnástkové).
- Zadajte šestnástkové číslice na prepísanie bajtov, alebo použite šípky na pohyb súborom. Backspace a Delete odstraňujú bajty.
- Stlačte Cmd+S na uloženie. Ako pri textovom editore sa uchová jednorazová záloha originálu.
Skratky¶
| Akcia | Klávesa |
|---|---|
| Upraviť súbor | F4 |
| Vytvoriť a upraviť nový textový súbor | Shift+F4 |
| Uložiť | Cmd+S |
| Hľadať | Cmd+F |
| Zobraziť/skryť prehľad symbolov | Cmd+Shift+O |
| Prejsť na riadok | Cmd+L |
| Skočiť na zodpovedajúcu zátvorku | Cmd+\ |
| Prejsť na obklopujúci uzol (JSON/YAML/XML) | Ctrl+Cmd+Nahor |
| Prejsť na prvého potomka | Ctrl+Cmd+Nadol |
| Prejsť na predchádzajúceho / ďalšieho súrodenca | Ctrl+Cmd+Vľavo / Vpravo |
| Vybrať obklopujúci uzol | Ctrl+Cmd+A |
| Kopírovať štruktúrnu cestu | Ctrl+Cmd+C |
| Skontrolovať dokument | Ctrl+Cmd+V |
| Zbaliť / rozbaliť uzol | Alt+Cmd+Vľavo / Vpravo |
| Zbaliť najvyššiu úroveň / rozbaliť všetko | Alt+Cmd+Nahor / Nadol |
| Späť / Znova (šestnástkový editor) | Cmd+Z / Cmd+Shift+Z |
| Filtrovať výber príkazom | Shift+Cmd+\ |
Poznámky¶
- Zvýraznenie syntaxe pokrýva JSON, C, C#, Java, JavaScript, TypeScript, Python a Rust. Ostatné typy súborov sa stále otvárajú a upravujú normálne so základným obarvením, ale podrobné zvýraznenie je dostupné len pre podporované jazyky.
- Prehľad pokrýva podporované programovacie jazyky a navyše JSON, YAML a XML — vrátane formátov založených na XML, ako sú
.plist,.svg,.csproja.storyboard. Príkazy pre štruktúrnu navigáciu, cestu a kontrolu platia pre JSON, YAML a XML. - Prehľad symbolov a Prejsť na riadok platia pre textový editor. Šestnástkový editor je určený na binárnu kontrolu a úpravy na úrovni bajtov, nie na text.
- Oba editory uchovávajú zálohu pôvodného súboru pri prvom uložení, takže náhodnú zmenu je ľahké vrátiť obnovením tej zálohy.