Sedm návyků efektivní úpravy textu

Original page: https://www.moolenaar.net/habits.html

Bram Moolenaar

Listopad 2000

Pokud trávíte spoustu času psaním prostého textu, psaní programů nebo HTML, můžete ušetřit většinu času pomocí dobrého editoru a jeho efektivního použití. Tento dokument představí pokyny a rady, jak pracovat rychleji as menším počtem chyb.

Textový editor s otevřeným zdrojovým kódem Vim (Vi IMproved) se zde použije k představení myšlenek o efektivní úpravě, ale vztahují se také na jiné editory. Výběr správného editoru je ve skutečnosti prvním krokem k efektivní úpravě. Diskuse o tom, který editor je pro vás nejlepší, by zabrala příliš mnoho místa. Pokud nevíte, který editor použít nebo nejste spokojeni s tím, co právě používáte, zkuste Vim; nebudete zklamáni.

[Příkazy Vim a možnosti jsou vytištěny v toto písmo]

Část 1: úprava souboru

1. Rychle se pohybujte

Většinu času tráví čtení, kontrola chyb a hledání správného místa, na kterém bude pracovat, než vkládání nového textu nebo jeho změna. Navigace v textu se provádí velmi často, proto byste se měli naučit, jak to rychle udělat.

Poměrně často budete chtít hledat nějaký text, o kterém víte, že tam je. Nebo se podívejte na všechny řádky, kde se používá určité slovo nebo fráze. Text můžete jednoduše najít pomocí vyhledávacího příkazu /pattern, ale existují chytřejší způsoby:

  • Vidíte-li určité slovo a chtějí hledat další výskyty stejného slova, použijte  * příkaz. To se chytit slovo pod kurzorem a hledat další.
  • Pokud nastavíte ‚incsearch‘ volba, bude Vim zobrazí první zápas za vzor, když jste ji ještě psaní. Tento rychle ukáže překlep ve vzoru.
  • Pokud nastavíte ‚hlsearch‘ volba, bude Vim zvýraznit všechny zápasech za vzor se žlutým pozadím. To poskytuje rychlý přehled o tom, kde bude příkaz hledání vás. V programovém kódu může ukázat, kde je použita proměnná. Nemáte ještě muset pohybovat kurzorem vidět zápasy.

V strukturovaného textu existují i ​​další možnosti, jak rychle pohybovat. Vim má specifické příkazy pro programy v C (a podobnými jazyky jako C++ a Java):

  • Použít % ke skoku z otevřené rovnátka svému odpovídající uzavírací závorka. Nebo z „#if“ na odpovídající „#endif“. Ve skutečnosti, % může skočit do mnoha různých položek, které odpovídají. To je velmi užitečné pro kontrolu, zda () a {} konstrukty jsou správně vyrovnané.
  • Použijte[{ skočit zpět do polohy „{“ na začátku aktuálního bloku kódu.
  • Použítgd ke skoku z použití proměnné k jeho místní prohlášení.

Samozřejmě existuje mnoho dalších. Jde o to, že musíte tyto příkazy znát. Můžete namítnout, že se všechny tyto příkazy nedokážete naučit – existují stovky různých pohybových příkazů, některé jednoduché, jiné velmi chytré – a naučit se je všechny trvá týdny tréninku. No, nemusíte; místo toho si uvědomte, jaký je váš specifický způsob úprav, a naučte se pouze ty příkazy, které vaše úpravy zefektivňují.

Existují tři základní kroky:

  1. Při úpravách dávejte pozor na akce, které opakujete a/nebo trávíte dost času.
  2. Zjistěte, zda existuje příkaz editoru, který provede tuto akci rychleji. Přečtěte si dokumentaci, zeptejte se přítele nebo se podívejte, jak to ostatní dělají.
  3. Trénujte pomocí příkazu. Udělejte to, dokud to vaše prsty nenapíšou bez přemýšlení.

Ukážeme si, jak to funguje:

  1. Zjistíte, že když upravujete programové soubory C, často trávíte čas hledáním místa, kde je funkce definována. V současné době používáte příkaz * k hledání dalších míst, kde se název funkce objevuje, ale nakonec projdete spoustou shod, kde je funkce použita místo definované. Získáte představu, že musí existovat způsob, jak to udělat rychleji.
  2. Při pohledu na rychlý odkaz najdete poznámku o skoku na značky. Dokumentace ukazuje, jak to lze použít pro přechod na definici funkce, přesně to, co jste hledali!
  3. Trochu experimentujete s vytvářením souboru tagů pomocí programu ctags, který je dodáván s Vim. Naučíte se používat příkaz CTRL-] a zjistíte, že vám ušetříte spoustu času. Abychom to usnadnili, přidáte do svého Makefile několik řádků a automaticky vygenerujete soubor značek.

Když používáte tyto tři kroky, dejte si pozor:

  • “Chci dokončit práci, nemám čas se podívat do dokumentace a najít nějaký nový příkaz”. Pokud si myslíte, že to takto, uvíznete v době kamenné práce na počítači. Někteří lidé používají Poznámkový blok pro všechno, a pak se diví, proč jiní dělají svou práci za poloviční čas…
  • Nepřehánějte to. Pokud se vždy pokusíte najít dokonalý příkaz pro každou maličkost, kterou děláte, vaše mysl nebude mít čas přemýšlet o práci, kterou jste vlastně dělali. Stačí si vybrat ty akce, které zabírají více času, než je nutné, a trénovat příkazy, dokud o nich nemusíte přemýšlet, když je používáte. Pak se můžete soustředit na text.

V následujících částech budou uvedeny návrhy opatření, s nimiž se většina lidí musí vypořádat. Můžete je použít jako inspiraci pro použití tří základních kroků pro vlastní práci.

2. Nezadávejte to dvakrát

Zadáváme omezený počet slov. A dokonce i omezený počet frází a vět. Zejména v počítačových programech. Samozřejmě nechcete psát totéž dvakrát.

Velmi často budete chtít změnit jedno slovo do druhého. Pokud je to třeba udělat v celém souboru, můžete použít :s příkaz (náhradní). Kdyby jen několik míst potřebuje změnu, rychlý způsob je použití * příkazu najít další výskyt slova a použít cw ke změně slovo.Zadejte n najít další slovo a .(tečka) opakovat cw příkaz.

. povel opakuje poslední změnu. Změna v tomto kontextu, je vkládání, mazání nebo nahrazování textu. Být schopen zopakovat to je velmi mocný mechanismus. Máte-li uspořádat úpravy kolem něj, bude mnoho změn stává předmětem bít právě ten . klíč. Dejte si pozor na provedení dalších změn v mezi, protože nahradí změny, které byly opakující se. Namísto toho budete chtít označit umístění pomocí m příkazu pokračovat opakovanou změnu a přijde tam později.

Některé funkce a názvy proměnných může být nepříjemné psát. Můžete rychle zadat „XpmCreatePixmapFromData“ bez překlepu a aniž by to? Vim má mechanismus dokončení, který dělá to mnohem jednodušší. Zdá se, že se slova v souboru, který upravujete, a také v # include’d souborů. Můžete zadat „XpmCr“, pak hit CTRL-N a Vim bude expandovat do „XpmCreatePixmapFromData“ pro vás. Nejen to ušetřit docela dost psaní, ale také zabraňuje vytváření překlep a museli ji opravit později, když vám kompilátor dává chybové hlášení.

Když píšete frázi nebo větu několikrát, tam je ještě rychlejší přístup. Vim má mechanismus pro záznam makra. Napíšete  qa ke spuštění záznamu v registru ‚A‘. Pak můžete zadávat své příkazy jako obvykle a nakonec udeřil  q záznam zastavíte. Pokud chcete opakovat zaznamenané příkazy píšete @a. K dispozici je 26 pro tento registrů.

S nahráváním můžete opakovat mnoho různých akcí, nejen vkládat text. Mějte to na paměti, když víte, že se chystáte něco opakovat.

Jedna věc, na kterou si musíte dát pozor při nahrávání, je to, že se příkazy budou přehrávat přesně tak, jak jste je zadali. Když se pohybujete kolem, musíte mít na paměti, že text, kterým se pohybujete, se může při opakování příkazu lišit. Pohybující se čtyři znaky vlevo mohou pracovat pro text, na kterém nahráváte, ale může být potřeba pět znaků, kde opakujete příkazy. Často je nutné používat příkazy k přesunu přes textové objekty (slova, věty) nebo k přesunu na konkrétní znak.

Když jsou příkazy, které potřebujete opakovat, stále komplikovanější, je jejich zadávání okamžitě obtížnější. Místo jejich záznamu byste měli napsat skript nebo makro. To je velmi užitečné při vytváření šablon pro části kódu; například hlavička funkce. Můžete to udělat tak chytrým, jak chcete.

3. Opravte to, když je špatně

Při psaní je normální dělat chyby. Nikdo se tomu nemůže vyhnout. Trik spočívá v jejich rychlém nalezení a opravě. Editor by měl být schopen vám s tím pomoci. Ale musíte to říct, co je špatného a co je správné.

Velmi často uděláte stejnou chybu znovu a znovu. Vaše prsty prostě nedělají to, co jste zamýšleli. To lze napravit zkratkami. Několik příkladů:

:abbr Lunix Linux
:abbr accross across
:abbr hte the

Slova budou automaticky opravena ihned po jejich zadání.

Stejný mechanismus lze použít k psaní dlouhého slova s několika znaky. Obzvláště užitečné pro slova, která je pro vás těžko psát, a vyhýbá se jejich špatnému zadávání. Příklady:

:abbr pn penguin
:abbr MS Mandrake Software

Tyto však mají tendenci se rozšiřovat na celé slovo, když ho nechcete, což ztěžuje, když do textu chcete skutečně vložit „MS“. Nejlepší je použít krátká slova, která nemají vlastní význam.

Pro nalezení chyb ve vašem textu má Vim chytrý mechanismus zvýraznění. Toto bylo vlastně zamýšleno k použití pro zvýraznění syntaxe programů, ale může také zachytit a zvýraznit chyby.

Zvýraznění syntaxe zobrazuje barevné poznámky. Nezní to jako důležitá funkce, ale jakmile ji začnete používat, zjistíte, že to hodně pomáhá. Můžete rychle najít text, který by měl být komentář, ale jako takový není zvýrazněn (pravděpodobně jste zapomněli značku komentáře). Nebo uvidíte řádek kódu zvýrazněný jako komentář (zapomněli jste vložit znak „*/“). Jedná se o chyby, které je obtížné najít v souboru B&W a mohou ztratit spoustu času při pokusu o ladění kódu.

Zvýraznění syntaxe může také zachytit nevyvážené rovnátka. Nevyvážený “)” je zvýrazněn jasně červeným pozadím. Můžete použít příkaz %, abyste viděli, jak se shodují, a vložte “(” nebo “)” na správné místo.

Mezi další časté chyby jsou také rychle všiml, například za použití „#included <stdio.h>“ namísto „#include <stdio.h>“. Snadno si ujít chybu v B&W, ale rychle všimnout, že „patří“ se zvýrazní, zatímco „zahrnutý“ není.

Složitější příklad: pro anglický text je dlouhý seznam všech použitých slov. Každé slovo, které není v tomto seznamu, může být chyba. Pomocí souboru syntaxe můžete zvýraznit všechna slova, která nejsou v seznamu. S několika dalšími makry můžete do seznamu slov přidat slova, takže již nebudou označena jako chyba. Funguje to stejně, jako byste očekávali v textovém editoru. Ve Vim je implementován pomocí skriptů a můžete jej dále naladit pro vlastní potřebu: například zkontrolovat pouze pravopisné komentáře v programu.

Část 2: Upravit více souborů

4. Soubor zřídka přichází sám

Lidé nepracují pouze na jednom souboru. Většinou existuje mnoho souvisejících souborů, a ty upravujete několik za sebou, nebo dokonce několik současně. Měli byste být schopni využít výhod svého editoru k zefektivnění práce s několika soubory.

Výše uvedený mechanismus značek funguje také pro přeskakování mezi soubory. Obvyklým přístupem je vygenerování souboru značek pro celý projekt, na kterém pracujete. Poté můžete rychle přeskočit mezi všemi soubory v projektu a najít definice funkcí, struktur, typedefů atd. Čas, který ušetříte ve srovnání s ručním vyhledáváním, je obrovský; vytvoření souboru značek je první věc, kterou dělám při procházení programu.

Další mocný mechanismus je najít všechny výskyty názvu ve skupině souborů pomocí :grep příkazu. Vim je seznam všech zápasů, a skočí na první.:cn Příkaz se dostanete ke každému dalšímu zápasu. To je velmi užitečné, pokud potřebujete změnit počet argumentů ve volání funkce.

Zahrnout soubory obsahují užitečné informace. Ale najít ten, který obsahuje prohlášení, které potřebujete vidět, může trvat hodně času. Vim ví o hlavičkové soubory, a může jim hledat slovo, které hledáte. Mezi nejčastější akce je k vyhledávání prototyp funkce. Najeďte kurzorem na název funkce v souboru a typ [I: Vim se zobrazí seznam všech zápasů na název funkce v vložených souborů. Pokud potřebujete získat další souvislosti, můžete přímo přejít na prohlášení. Podobný příkaz lze použít ke kontrole, zda jste zahrnout soubory správné záhlaví.

Ve Vimu můžete rozdělit textovou oblast do několika částí a upravovat různé soubory. Poté můžete porovnat obsah dvou nebo více souborů a mezi nimi zkopírovat/vložit text. Existuje mnoho příkazů pro otevírání a zavírání oken, přeskakování mezi nimi, dočasné skrytí souborů atd. Opět budete muset použít tři základní kroky k výběru sady příkazů, které se chcete naučit používat.

Existuje více využití více oken. Mechanismus náhledu je velmi dobrým příkladem. Tím se otevře speciální okno náhledu, přičemž kurzor zůstane v souboru, na kterém pracujete. Text v okně náhledu zobrazuje například deklaraci funkce pro název funkce, který je pod kurzorem. Pokud přesunete kurzor na jiné jméno a necháte ho tam na chvilku, v okně náhledu se zobrazí definice tohoto názvu. Může to být také název struktury nebo funkce, která je deklarována v zahrnutém souboru vašeho projektu.

5. Pojďme pracovat společně

Editor slouží k úpravám textu. E-mailový program slouží k odesílání a přijímání zpráv. Operační systém je určen pro spouštění programů. Každý program má svůj vlastní úkol a měl by být dobrý. Síla pochází z toho, že programy spolupracují.

Jednoduchý příklad: Musíte napsat shrnutí ne více než 500 slov. Vyberte aktuální odstavec a zapsat jej do „WC“ programu: vip:w !wc -w. Externí „wc -w“ příkaz se používá k počítání slov. Jednoduché, ne?

Vždy bude existovat určitá funkce, kterou potřebujete, která není v editoru. Díky možnosti filtrovat text pomocí jiného programu můžete tuto funkci přidat externě. Vždy bylo duchem Unixu mít oddělené programy, které dobře vykonávají svou práci, a spolupracovat na plnění většího úkolu. Většina editorů bohužel příliš dobře nefunguje spolu s jinými programy – například v Netscape nemůžete nahradit editor elektronické pošty jiným. Nakonec použijete zmrzačený editor. Další tendencí je zahrnout do editoru všechny druhy funkcí; Emacs je dobrým příkladem toho, kde to může skončit. (Někteří to nazývají operační systém, který lze také použít k úpravě textu.)

Vim se snaží integrovat s jinými programy, ale to je stále boj. V současné době je možné použít Vim jako editor v MS-Developer Studio a Sniff. Některé e-mailové programy, které podporují externí editor, jako je Mutt, mohou používat Vim. Probíhá integrace s Sun Workshopem. Obecně se jedná o oblast, která se v blízké budoucnosti musí zlepšit. Teprve pak získáme systém, který je lepší než součet jeho částí.

6. Text je strukturován

Často budete pracovat s textem, který má nějakou strukturu, ale liší se od toho, co podporují dostupné příkazy. Poté se budete muset vrátit zpět k „stavebním kamenům“ editoru a vytvořit si vlastní makra a pluginy, abyste mohli s tímto textem pracovat. Zde se dostáváme ke komplikovanějším věcem.

Jedním z jednodušších věcí je, aby urychlily edit-kompilace-fix cyklus. Vim má :make příkaz, který začíná svou kompilaci, zachytává chyby Vyrábí a umožňuje přechod na místech chyb opravit problémy. Pokud použijete jiný kompilátor, nebude uznána chybové zprávy. Namísto návratu ke starému „Zapište si to“ systém, měli byste nastavit ‚ errorformat‘ možnost. To svědčí o Vim, jaké jsou vaše chyby vypadat a jak se dostat název souboru a číslo řádku z nich. Funguje to pro složité gcc chybových zpráv, a tak byste měli být schopni zajistit, aby fungovala pro téměř všechny kompilátor.

Někdy je přizpůsobení typu souboru jen otázkou nastavení několika možností nebo psaní několika maker. Chcete-li například přejít po ručních stránkách, můžete napsat makro, které popadne slovo pod kurzorem, vymaže vyrovnávací paměť a přečte manuální stránku pro dané slovo do vyrovnávací paměti. To je jednoduchý a efektivní způsob vyhledávání křížových odkazů.

Pomocí tří základních kroků můžete efektivněji pracovat s jakýmkoli druhem strukturovaného souboru. Jen přemýšlejte o akcích, které chcete se souborem provést, najděte příkazy editoru, které to dělají, a začněte je používat. Je to opravdu tak jednoduché, jak to zní. Musíte to prostě udělat.

Část 3: ostření pily

7. Ať je to zvyk

Naučit se řídit auto vyžaduje úsilí. Je to důvod, proč dál řídit své kolo? Ne, uvědomujete si, že musíte investovat čas, abyste se naučili dovednosti. Úpravy textu se neliší. Musíte se naučit nové příkazy a proměnit je ve zvyk.

Na druhou stranu byste se neměli snažit naučit každý příkaz, který editor nabízí. To by byla úplná ztráta času. Většina lidí se pro svou práci potřebuje naučit pouze 10 až 20 procent příkazů. Ale je to jiná sada příkazů pro všechny. Vyžaduje se, abyste se občas opírali a přemýšleli, jestli existuje nějaký opakující se úkol, který by mohl být automatizován. Pokud uděláte úkol pouze jednou a neočekáváte, že to budete muset udělat znovu, nezkoušejte jej optimalizovat. Pravděpodobně si však uvědomujete, že jste za poslední hodinu něco opakovali. Poté vyhledejte v dokumentaci příkaz, který jej dokáže provést rychleji. Nebo napište makro. Když je to větší úkol, jako je například seřazení konkrétního druhu textu, můžete se rozhlédnout v diskusních skupinách nebo na internetu a zjistit, zda to pro vás někdo už vyřešil.

Základním základním krokem je poslední. Můžete myslet na opakující se úkol, najít pro něj příjemné řešení a po víkendu jste zapomněli, jak jste to udělali. To nefunguje. Budete muset opakovat řešení, dokud to vaše prsty neudělají automaticky. Teprve pak dosáhnete požadované účinnosti. Nesnažte se naučit příliš mnoho věcí najednou. Ale dělat pár současně bude dobře. U triků, které nepoužíváte dost často na to, abyste je dostali do prstů, možná budete chtít napsat je, abyste si je mohli později prohlédnout. Pokud přesto udržujete cíl v dohledu, najdete způsoby, jak vaše úpravy zefektivnit.

Poslední poznámka, která vám připomene, co se stane, když lidé ignorují všechny výše uvedené: Stále vidím lidi, kteří tráví polovinu dne za VDU, dívajíc se na obrazovku, pak dolů dvěma prsty, pak nahoru na obrazovku atd. A pak se divíte, proč jsou tak unavení… Napište deset prstů! Není to jen rychlejší, ale také mnohem méně únavné. Používání počítačového programu na jednu hodinu každý den se naučit dotykovému typu trvá jen pár týdnů.

Epilog

Myšlenka o titul pochází z úspěšné knihy „7 návyků skutečně efektivních lidí“ Stephen R. Covey. Doporučuji každému, kdo chce řešit osobní a profesní problémy (a kdo ne?). I když někteří z vás tvrdí, že pochází z Dilbert knihy „Sedm let velmi vadných lidí“ od Scott Adams (doporučeno také!). Viz http://iccf-holland.org/click1.html a přejděte na „doporučených knih a CD“.

O autorovi

Bram Moolenaar je hlavním autorem Vima. Píše základní funkčnost Vimu a vybere, jaký kód bude obsahovat mnoho dalších. Vystudoval technickou univerzitu Delft jako počítačový technik. Nyní pracuje hlavně na softwaru, ale stále ví, jak zacházet s páječkou. Je zakladatelem a pokladníkem společnosti ICCF Holland, která pomáhá sirotkům v Ugandě. Na volné noze pracuje jako systémový architekt, ale ve skutečnosti tráví většinu času prací na Vimovi. Jeho e-mailová adresa: Bram AT Moolenaar.net.