Vi Editor: Prečo si programátori myslia, že tento starý editor je stále úžasný

zverejnenie: Vaša podpora pomáha udržiavať web v prevádzke! Za niektoré zo služieb, ktoré odporúčame na tejto stránke, získavame poplatok za sprostredkovanie.


Vi je textový editor pôvodne vytvorený pre operačný systém Unix. Namiesto ponúk vi používa na vykonanie príkazov kombináciu stlačení klávesov. Preto nie je potrebné používať myš alebo touchpad – všetko sa robí výlučne pomocou klávesnice.

Naučte sa editor Vi

Stručná história

Vi sleduje svoj pôvod až po najskorší editor príkazového riadka používaný v systémoch Unix s názvom ed. Ed pracoval s teletypmi veľmi dobre, ale nebol vhodný pre zobrazovacie terminály. Pomerne málo ľudí považovalo ed za nepriateľských a vzali na seba, aby vytvorili lepšiu verziu. Medzi nimi je George Coulouris, v tom čase prednášajúci na Queen Mary College, ktorý vytvoril editora editora zobrazovacích terminálov..

V roku 1976 navštívil UC Berkeley a ukázal ich rôznym ľuďom. Reakcie boli zmiešané, ale pár študentov, Bill Joy a Chuck Haley, boli ohromení em a používali ich ako základňu pre svojho vlastného editora s názvom en, ktorý sa potom rozšíril na vytvorenie verzie ex 0.1. Po tom, ako Haley opustil Berkeley, Joy redizajnoval editora v roku 1977, keď pridal ex-vizuálny režim na celú obrazovku, čím umožnil prezeranie textu na celej obrazovke namiesto jedného riadku naraz..

Ex 1.1 bol oficiálne zaradený do prvého vydania BSD Unix v roku 1978 a po vydaní verzie 2.0 bol známy ako vi ako súčasť druhej distribúcie softvéru Berkeley v roku 1979, keď bol editor nainštalovaný pod menom „vi“, pretože sa automaticky prevzal používatelia priamo do bývalého vizuálneho režimu.

vi klony

Vzhľadom na to, že zdrojový kód pôvodného vi nebol do roku 2002 voľne k dispozícii, vytvorilo sa mnoho klonov editora vi. Mali podobný vzhľad a funkčnosť, ale boli napísané úplne od nuly. To umožnilo pridať ďalšie funkcie a preniesť editora do iných operačných systémov.

Zoznam vi klonov obsahuje calvin, elvis, elwin, lemmy, nvi, stevie, vile, zmije, BusyBox a xvi. Najpopulárnejším klonom je Vim, čo je vylepšená verzia editora vi distribuovaná vo väčšine systémov UNIX.

elán

Vim je skratka pre Vi IMproved a obsahuje ešte viac funkcií ako vi, čo ju robí obľúbenou medzi mnohými programátormi. Medzi funkcie patrí (skriptovateľné) zvýrazňovanie syntaxe, podpora myši, grafické verzie, vizuálny režim, nové editovacie príkazy a prípony ex príkazov. Je súčasťou takmer každej distribúcie Linuxu a dodáva sa so všetkými kópiami Apple MacOS.

Pretože Vimu chýbajú niektoré funkcie vi, má režim vi kompatibilita, vďaka ktorému je prísnejšie v súlade s vi. Túto funkciu je možné ovládať pomocou: set kompatibilnej možnosti.

Vim je možné prispôsobiť mnohými spôsobmi – vrátane jeho užívateľského rozhrania a základných funkcií. Môžete definovať personalizované makrá, ktoré automatizujú postupnosť stlačení klávesov, nastavujú interné užívateľské funkcie a využívajú množstvo doplnkov, ktoré pridávajú do Vimu nové funkcie. Pluginy sú napísané v internom skriptovacom jazyku Vimu nazývanom vimscript. Podporuje tiež skriptovanie pomocou Lua, Perl, Python, Ruby, Tcl a Racket.

Vi Základy

Táto sekcia vás prevedie všetkými základmi vi, aby ste mohli okamžite začať produktívne upravovať dokumenty. Pamätajte však: je toho oveľa viac, čo by ste mali vedieť a všetko, čo sa naučíte, vás zvýši produktivitou.

Čo robí Vi??

Pomocou vi môžete editovať textové súbory pomocou klávesnice. To zahŕňa XML, TeX, HTML a programovacie jazyky, ale nie binárne súbory ako Word alebo OpenDocument. Ak chcete súbor upraviť, zadajte príkazový riadok:

vi názov súboru

Keď vi beží, preberie okno terminálu. Ak súbor už existuje, jeho začiatok vyplní obrazovku. Názov súboru sa zobrazí na poslednom riadku. Ak ešte neexistuje, vyplní sa obrazovka prázdnymi čiarami, s výnimkou vlnovky na ľavom okraji. V dolnom riadku sa za názvom zobrazí „[Nový súbor]“.

Spočiatku ste v príkazovom režime. Toto je jeden z troch hlavných režimov vi. V príkazovom režime je každé stlačenie klávesu príkaz. Môžete začať stlačením „i.“ Teraz ste v režime vkladania, ako vám pripomína slovo „- VLOŽIŤ“ v dolnej časti okna. Všetko, čo napíšete, sa vloží ako text. Ak sa chcete vrátiť z režimu vloženia do príkazového režimu, stlačte kláves.

Tretí režim je režim posledného riadku. Dostanete sa k nemu z príkazového režimu zadaním dvojbodky (:). Keď ste v režime posledného riadku, zadávate príkazový riadok v dolnej časti okna. Vykoná sa, len keď stlačíte. Ak chcete uložiť, čo ste vložili, napíšte „: w“ (dvojbodka nasledovaná malými písmenami w a). Týmto sa súbor vypíše. Ak ide o nový súbor, musíte zadať názov súboru. Urobíte to tak, že zadáte „: w filename“ a následne. Potom sa vrátite do príkazového režimu.

Všetky stlačenia klávesov vi rozlišujú veľké a malé písmená! Ak omylom necháte zapnuté čiapky, môžu sa vyskytnúť čudné veci.

navigácia

Tento článok popisuje iba niektoré základné vi príkazy. Podrobnejšie informácie nájdete v dokumentácii vim.

Pohyb v malom meradle

Kurzor môžete posúvať pomocou klávesov so šípkami alebo pomocou „j“ (dole), „k“ (hore), „h“ alebo (doľava) a „l“ alebo (vpravo). Najlepšie je vyhnúť sa klávesom so šípkami z niekoľkých dôvodov. Najväčšie je, že vaše prsty nemusia opustiť východiskovú pozíciu. Ďalšou možnosťou je, že nie sú vždy k dispozícii – ak nájdete starú verziu alebo verziu, v ktorej nie je správne nastavený typ terminálu. Ak nám napíšete funkciu: map (pozri nižšie), je ľahšie použiť príkazy letter.

Môžete posunúť jedno slovo o „w“ alebo sa vrátiť o slovo „b“.

Pohyb vo veľkom meradle

Zadaním „0“ sa dostanete na začiatok riadku a „$“ na koniec. Podobne „: 0“ vás dovedie na začiatok súboru a „: $“ vás dovedie na koniec súboru. Toto je súčasť všeobecného systému, kde „: num“ vás zavedie na číslo linky č. Takže „: 101“ vás zavedie na číslo 101. (Ak je v súbore menej ako 101 riadkov, dostanete sa na koniec súboru.)

Vi vám zvyčajne umožňuje robiť dôležité veci viac ako jedným spôsobom. Takže môžete ísť na konkrétny riadok s „Gnum“, kde num je číslo riadku. Výhodou je, že si vyžaduje jeden menší charakter. Nevýhodou je však to, že nie je v súlade s „0“ a „$“, takže „0G“ vás nepresunie na začiatok súboru a „$ G“ vás nepresiahne na koniec.

Dva ďalšie kritické navigačné príkazy sú ctrl-b na návrat o stránku späť a ctrl-f na posun o stránku vpred.

Pridávanie a úprava textu

Už ste videli príkaz „i“ na vloženie textu. To, čo napíšete, sa umiestni od pozície kurzora. Príkaz „a“ vloží text začínajúci znakom po znaku, v ktorom sa nachádzate. Je ľahké si predstaviť, že tieto dva príkazy sú insert (i) a append (a). Ak si ich pamätáte, môžete si ľahko zapamätať kapitalizované verzie týchto príkazov. Príkaz „A“ vkladá text na koniec riadku a príkaz „I“ vkladá text na začiatok riadku. Príkaz „A“ na konci riadku pripojí to, čo napíšete.

Zadaním „o“ sa za riadkom kurzora otvorí nový riadok a môžete doň začať písať. Veľké písmeno „O“ urobí to isté pred riadkom kurzora.

Odstraňuje sa text

Príkazy na odstránenie sú vysoko univerzálne. Zadaním „dw“ sa slovo vymaže a začína na pozícii kurzora. Pred ňu môžete vložiť číslo, aby ste odstránili toľko slov. Preto „3dw“ odstráni tri slová. Písanie „d $“ alebo „D“ sa vymaže na koniec riadku. Príkaz „dd“ vymaže celý riadok a „10dd“ vymaže desať riadkov. Zadaním „d“ (písmeno d, za ktorým nasleduje medzera) alebo „x“, sa vymaže jeden znak. Zadaním „20x“ sa odstráni až 20 znakov, ale neprekročí aktuálny riadok.

Zmena textu

Príkaz na zmenu textu je „c.“ Funguje presne rovnako ako príkaz „d“ s tým rozdielom, že potom prejde do režimu vloženia, kde bol text odstránený. Takže 3cw odstráni tri slová a nahradí ich vami zadaným textom, až kým nezasiahnete .

Neprepadajte panike, ak ste odstránili nesprávnu vec. Príkaz „u“ zruší poslednú vykonanú zmenu. Vo väčšine implementácií ho môžete zadať viackrát, aby ste vrátili posledné zmeny späť. Ak zrušíte jednorazovo príliš veľa, funkcia ctrl-r zopakuje to, čo ste práve zrušili.

Jednou z najmocnejších vecí vo vi je „.“ Príkaz. Opakuje sa vaša posledná zmena. Ak ste na zmenu textu použili „3cw“, zadajte „.“ spôsobí nasledujúce tri slová (nech ste kdekoľvek) čokoľvek, na čo ste zmenili posledné tri slová. Alebo, ak ste práve odstránili desať riadkov pomocou „10dd“, zadajte „.“ odstráni ďalších 10 riadkov. Je to veľmi užitočné aj pri príkaze „: map“.

Vkladanie textu

Text môžete presunúť z jedného miesta na druhé odstránením a prilepením. Príkaz na vloženie je „p“ na vloženie za kurzor alebo „P“ na vloženie pred kurzor. Ak odstránite jeden alebo viac úplných riadkov textu, text sa zobrazí pod (s „p“) alebo nad (s „P“) aktuálnym riadkom.

Yanking Text

Príkaz „y“ pre kópiu „yank“ namiesto vymazania. Vloží text do dočasnej vyrovnávacej pamäte, ktorú môžete vložiť inde, raz alebo viackrát. Možnosti sú rovnaké ako možnosti na odstránenie, s výnimkou toho, že „yy“ sa používa na vytrhnutie celého riadku. (To zodpovedá „dd“ na odstránenie celého riadku.)

Buď opatrný. Zakaždým, keď vytrhnete alebo odstránite, text prejde do nemenovaného medzipamäte, ktorý je v iných aplikáciách ako schránka. Nahrádza predchádzajúci nemenovaný buffer. Ak si chcete ponechať text trochu dlhšie, môžete použiť jeden z 26 menovaných vyrovnávacích pamätí. Zadáte ho tak, že pred jeho písmeno uvediete znak úvodzovky. Ak chcete do medzipamäte s názvom „c“ pretiahnuť štyri riadky, napíšte „4 ″ cyy“ (pre jednoduchosť sú uvedené v jednoduchých úvodzovkách). Ak ho chcete prilepiť, pred príkazom vloženia použite rovnaký znak úvodzovky a písmeno vyrovnávacej pamäte. Ak teda chcete vložiť štyri riadky, ktoré sme práve skopírovali, do vyrovnávacej pamäte „c“ do riadku pod aktuálnym, použite príkaz „cp“.

vyhľadávanie

Ak chcete hľadať text, napíšte „/“, za ním hľadaný reťazec a. Za kurzorom nájde nasledujúcu zhodu, v prípade potreby sa zalomí okolo vrcholu. Ak chcete hľadať vzad, napíšte „?“ namiesto “/.”

púzdro

Vyhľadávanie je v predvolenom nastavení citlivé na veľkosť písmen. Ak chcete vykonať vyhľadávanie nerozlišujúce malé a veľké písmená, začnite hľadaný reťazec písmenom „c“. Takže ak použijete „/ cthis“, za ktorým nasleduje, vi nájde „this“ bez ohľadu na jeho kapitalizáciu. Predvolenú hodnotu môžete zmeniť aj zadaním „: set ignorecase“ a následným. Môžete tiež zadať „: set ic.“ Ak sa chcete vrátiť späť na vyhľadávanie rozlišujúce malé a veľké písmená, zadali by ste „: set noignorecase“ alebo „: set noic“.

Posledné vyhľadávanie môžete zopakovať príkazom „n“. Ak chcete hľadať v opačnom smere, použite príkaz „N“.

Regulárne výrazy

Vyhľadávací reťazec je v skutočnosti regulárny výraz. To vám umožní vyhľadávať vzory, ale niektoré znaky nefungujú ako doslovné zhody. Ako jednoduchý príklad nájdeme pri vyhľadávaní výrazu „w..d“ „drevo“, „vietor“ alebo „w00d“. To je preto, že “.” vo vyhľadávaní zodpovedá ľubovoľnému znaku. Ak chcete vyhľadať znak „.“ zadáte pred ňu lomítko. Takže zadáte „/.“ príkaz.

Ďalšie informácie o regulárnych výrazoch nájdete v našom článku Primer a zdroje regulárnych výrazov.

Práca so súbormi

Ako už bolo uvedené, súbor „: w“ sa uloží. Ak ho chcete uložiť do iného súboru, napíšte „: w newfilename“. Keď skončíte s programom vi, môžete zadať „: wq“, aby ste ho uložili a ukončili. Nezabudnite, že príkaz posledného riadku začínajúci dvojbodkou vyžaduje, aby ste ho dokončili zadaním príkazu. Výsledkom je, že mnoho nadšencov vi používa príkaz „ZZ“, ktorý robí to isté.

Nový súbor

Ak chcete prepnúť na iný súbor, napíšte „: e newfilename“. Ak ste neuložili predchádzajúci súbor, zobrazí sa upozornenie vi. Ak naozaj chcete zahodiť svoje zmeny, použite „e! newfilename “. Môžete použiť „: e!“ bez názvu súboru, ak ste sa pokazili a chcete sa vrátiť k poslednej uloženej verzii aktuálneho súboru.

Medzi príkazom „: e #“ môžete prepínať medzi aktuálnym a posledným súborom, ktorý ste upravili. S týmto môžete prepínať medzi dvoma súbormi, čo je podobné úpravám dvoch súborov naraz, o ktorých diskutujeme nižšie.

Viac súborov

Môžete upravovať viac súborov naraz a prepínať medzi nimi. V terminológii vi prepínate medzi ich editačnými buffermi. Ak chcete upraviť viac súborov v jednej relácii, spustite vi pomocou príkazového riadku, ako je tento:

vi file1 file2 file3

Na obrazovke sa zobrazí prvý zoznam, ktorý ste uviedli. Na ich prechádzanie môžete použiť „: bn“ (ďalší nárazník) alebo „: bp“ (predchádzajúci nárazník). Môžete kopírovať do menovaných vyrovnávacích pamätí a kopírovať text z jedného súboru do druhého. (Úprava vyrovnávacích pamätí a vloženie vyrovnávacích pamätí sú dve rôzne veci. Je to trochu mätúce.)

Príkazy Shell od Vi

Príkazy shellu môžete spúšťať bez toho, aby ste opustili vi. Ak to chcete urobiť, napíšte „:!“ (dvojbodka a výkričník), za ktorým nasleduje príkaz. Uvidíte výstup príkazu a potom sa musíte vrátiť, aby ste sa dostali späť do príkazového režimu. Môžete dokonca zadať „:! Sh“, aby ste spustili prostredie zvnútra vi, vykonali viac príkazov a potom skončili späť do vi. Toto je užitočné, ak upravujete nejaký kód a chcete vyskúšať svoje zmeny.

Môžete spustiť príkaz shellu a vložiť jeho výstup do aktuálneho súboru zadaním „: r! Command“.

Mapovanie klávesnice

Jednou z najmocnejších vecí o vi je jej schopnosť mapovať príkazy na kľúče. Robí sa takto:

: príkazy klávesov mapy

Kľúč je jeden znak. Môže to byť ľubovoľný znak, ale radšej nepoužívate kláves, ktorý je už príkazom ako „c“ alebo „a“. Príkazy môžu byť dosť komplikované. Môžu napríklad obsahovať kláves Enter s písmenom „“ a kláves Escape s písmenom „.“ Ak máte opakujúcu sa úlohu, môžete ju jednoducho zmapovať do jedného kľúča. Napríklad nasledujúci príkaz spôsobí, že sa kláves „q“ presunie na druhé slovo nasledujúceho riadku a zmení ho na „Help!“. a vrátiť sa k prvému znaku pôvodného riadku:

: map q j0wcwHelp! k

Príkaz mapy je najúčinnejší v kombinácii s regulárnymi výrazmi a príkazom opakovanie („.“). Kedykoľvek zistíte, že robíte niečo nudné, zatiaľ čo vo vi, skontrolujte, či môžete zostaviť mapovanie, ktoré to dokáže. Vo väčšine prípadov môžete.

zdroje

Toto bol veľmi rýchly prehľad toho, čo je možné vo vi. Znovu skontrolujte úplnosť informácií v dokumentácii. Možno budete chcieť uložiť záložku podvádzať, ako je napríklad vimsheet.com alebo Vim Cheat Sheet pre programátorov. Tu je niekoľko ďalších zdrojov:

Zdroje online

Nasledujúce zdroje sa skladajú z rôznych článkov, tutoriálov, a dokonca aj podvádzať listy.

  • The Traditional Vi: oficiálna domovská stránka pre editora vi s odkazmi na stiahnutie.
  • Vi FAQ: skvelé miesto, kde začať, pretože odpovedá na najčastejšie otázky týkajúce sa vi a prečo sa oplatí to naučiť.
  • Úvod do editácie displeja s programom Vi: návod na použitie s programom vi zameraný na pokročilejších používateľov, ktorý obsahuje jeho vlastnosti a spôsob použitia..
  • Vi Manual Page: poskytuje popis dostupných príkazov.
  • Unix – Výukový program pre editora Vi: veľmi krátky a výučbový program pre vi určený pre úplných začiatočníkov.
  • Ako používať Vi: ďalší tutoriál zameraný na úplných začiatočníkov, ktorý slúži ako „jemný úvod“ do editora, ale môže sa použiť aj ako referenčný materiál pre stredne pokročilých používateľov..
  • Vi Cheat Sheet: šikovný cheat sheet základných vi príkazov.
  • Vim: oficiálna domovská stránka pre Vim.
  • Výukový program pre interaktívne Vim: ako už názov napovedá, tento návod je interaktívny – emuluje príkazový riadok a klávesnicu priamo v prehliadači, aby ste ich mohli vyskúšať a naučiť sa Vima bez obáv z poškodenia počítača..
  • Grafický cheatový list a výučba Vi-Vim: grafický cheatový list zobrazujúci základné príkazy na klávesnici GIF s sprievodným tutoriálom.
  • Vim Awesome: pomerne veľká zbierka doplnkov pre Vim.
  • Mimoriadne rýchly a jednoduchý úvod do textového editora Vi: tento tutoriál od spoločnosti Norm Matloff poskytuje „viin 5-minútový úvod“. Pre pravých začiatočníkov je to pravdepodobne príliš tesné, ale ak potrebujete rýchle pripomenutie, je to vynikajúci dokument.
  • Vi Text Editor: táto Ryanova výučba poskytuje základný úvod, ktorý vás prevedie spôsobmi, ako nič nevedieť.
  • Naučte sa Vim progresívne: tento tutoriál sa začína na začiatku, ale rýchlo sa dostane do mnohých pokročilých predmetov.
  • Mapovacie kľúče vo Vim: Toto je podrobný sprievodca mapovaním pomocou vim. Ak sa chcete stať používateľom vi vi, musíte si to skontrolovať.

Videonávody

K dispozícii je niekoľko videonávodov, ak sa chcete radšej učiť.

  • Editor Vi / Vim: úvodná príručka o tom, ako používať editor vi / vim, vrátane toho, ako otvoriť súbor, vložiť text, napísať text do súboru a ukončiť vi.
  • Naučte sa milovať Vim: nie tutorial ako taký, ale zdôrazňuje to, prečo by ste mali používať Vim.
  • Učenie Vim za týždeň: prednášku, ktorú predstavil Mike Coutermash, na základe jeho príspevku na blogu Učenie Vim za týždeň. Zameriava sa na začiatočníkov a pokrýva vstávanie a beh s Vimom.

knihy

Vzhľadom na popularitu vi a Vim, nasledujúce knihy pokrývajú editorov vo veľkej hĺbke.

  • Učíme sa editorov Vi a Vim (2008) od Robbins, Hannah a Lamb: zahŕňa základy úprav a pokročilé nástroje pre editorov aj programátorov, ako je napríklad editácia v niekoľkých oknách, ako napísať interaktívne makrá a skripty, aby sa editor rozšíril, a viac.
  • Mastering Vim (2014) od Damien Conway: najvhodnejší pre stredne pokročilých používateľov, pokrýva pokročilejšie funkcie Vimu, možnosti konfigurácie a niekoľko doplnkov, ktoré zlepšujú zážitok z úprav.
  • Ako používať textový editor UNIX-LINUX Vi: Tipy, triky a techniky (A tutoriály príliš!) (2006) Larryho L Smitha: Toto je krátky a jednoduchý úvod do editora. Ak sa chcete o víkende rozbehnúť, táto kniha sa má používať.
  • Practical Vim: Edit Text at the Speed ​​of Thought (2015), autor: Drew Neil: Ak už viete vi editora a chcete sa stať mocným používateľom, je to kniha, ktorú chcete použiť. Skladá sa zo 126 tipov, ktoré vám ukážu, prečo sú niektorí ľudia stratení bez vi.
  • Referencie editora Vi a Vim Pocket (2011) od Arnolda Robbinsa: pokrýva najcennejšie príkazy pre hlavné klony vi, Vim a vi.

Chvíľu trvá, kým sa stanete expertom na vi, ale keď sa tam dostanete, budete sa čudovať, prečo ste sa niekedy obťažovali myšou.

záver

Medzi serióznymi vývojármi (prinajmenšom vo svete Unixu) sú uvedení iba dvaja redaktori: Emacs a vi. Obaja majú svoje výhody a nevýhody. A rôzni ľudia majú silné názory na to, ktorý editor by ste mali použiť.

Richard Stallman je zakladateľom projektu GNU a hnutia slobodného softvéru. Okrem písania pôvodného prekladača GNU (GCC) napísal aj GNU Emacs. Tu sa trochu zabaví na náklady vi:

Emacs vám umožňuje robiť oveľa viac – zvlášť ak kódujete v Lisp. Ale vi je extrémne nízka hmotnosť a pre niekoho, kto to vie dobre, mimoriadne silný a rýchly.

Vyššie uvedené zdroje vám pomôžu stať sa majstrom vi v žiadnom momente – a výrazne zlepšiť vašu produktivitu.

Ďalšie čítanie a zdroje

Máme viac sprievodcov, návodov a infografík týkajúcich sa kódovania a vývoja:

  • Mantis Hosting: zistite, čo webhostingové spoločnosti ponúkajú dobré ponuky, ktoré zahŕňajú tento populárny program na sledovanie chýb, nevyhnutný nástroj pre serióznych programátorov.
  • Ubuntu Primer: Dozviete sa všetko o jednej z najpopulárnejších distribúcií Linuxu. Je to vynikajúci systém, na ktorom sa dá vyvíjať – a prichádza s vim!
  • Objektovo orientované programovanie: Dozviete sa o konceptoch objektovo orientovaných jazykov a o špecifikách širokého spektra objektovo orientovaných programovacích jazykov. Niektorí vás možno prekvapia. Objektovo orientovaný Fortran?!

Prežil by internet koniec sveta?

Premýšľali ste niekedy, čo by veľká katastrofa spôsobila na internete? Vyskúšajte náš infographic. Prežil by internet koniec sveta? Je možné, že sme všetci zničili, ale internet by žil ďalej.

Prežil by internet koniec sveta?
Prežil by internet koniec sveta?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map