Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij podzimní akce 30% výuky zdarma!
Python týden

Lekce 4 - Visual Studio - Vyhledávání a nahrazovaní v textu

Vítám vás u pokračování seriálu, kde si popisujeme jedno z nejpopulárnějších IDE - Visual Studio. V minulé lekci, Visual Studio - Nastavení a formátování, jsme se věnovali nastavení.

Na dnešní lekci máme nachystané téma vyhledávání.

Vyhledávání v textu

Visual Studio umí v textu (kódu) vyhledávat s docela širokými možnostmi nastavení. K dispozici máme dva nástroje - normální a rychlé vyhledávání. K oběma se dostanete přes nabídku Edit -> Find and Replace, kde jsou možnosti Quick Find a Find in Files. Lepší a pohodlnější je ale zapamatovat si zkratky Ctrl + F a Ctrl + Shift + F.

Rychlé vyhledávání

Rychlé vyhledávání obsahuje jen nejpodstatnější políčka:

  • Co se bude vyhledávat - Co se bude vyhledávat je text nebo regulární výraz.
  • Kde se bude vyhledávat - Kde se bude vyhledávat je ve výchozím nastavení Current Document, což vyhledává v aktuálně otevřeném dokumentu, dále zde jsou možnosti:
  • Current Block - Vyhledává v aktuálním bloku, nejčastěji metodě. V závorce je uveden název bloku. Pokud žádný blok není, nebo to editor daného jazyka nepodporuje, tato možnost zde nebude.
  • Selection - Vyhledává ve výběru.
  • All Open Documents - Vyhledává ve všech otevřených zdrojových kódech.
  • Current Project - Vyhledává napříč celým aktuálním projektem ve všech dokumentech.
  • Entire Solution - Vyhledává napříč celým řešením ve všech dokumentech.

Vyhledávání v aktuálním dokumentu, bloku a výběru funguje interaktivně, již při psaní vidíte výsledky hledání. Při vyhledávání v otevřených oknech a v řešení vyhledávání ještě musíte potvrdit šipkou vpravo. Tato šipečka má i své rozšířené možnosti, ve kterých se nachází třeba možnost hledat zpět nebo zobrazit okno se seznamem všech nálezů:

Vlevo dole se nacházejí rozšířené možnosti (zleva):

  • Rozlišování velikosti písmen
  • Hledání jako celá slova (např. výraz Regex pak nebude nalezen ve výrazu RegexOptions)
  • Hledání pomocí regulárního výrazu

Hledání v souborech

Hledání v souborech otevře plovoucí okno Find and Replace, které umožňuje podobné kousky jako rychlé vyhledávání:

Nacházejí se zde stejné funkce jako u rychlého vyhledávaní (rozlišování velikosti písmen, hledání jako celá slova i hledání pomocí regulárního výrazu). Stejně tak je tu i možnost výběru, ve kterých souborech chcete vyhledávat. Tato funkce je zde však rozšířena o možnost (tlačítko se třemi tečkami) vyfiltrování souborů.

Dále zde oproti standardnímu vyhledávání máte navíc možnost vybrat si typ souborů, ve kterých se bude vyhledávat.

Když zatrhnete, že chcete vyhledávat s pomocí regulárního výrazu, vedle políčka pro vyhledávání se objeví tlačítko, které pomůže s tvorbou regulárního výrazu. Můžete si tam vybrat často používané výrazy a kombinovat je. Díky tomu můžete regulární výraz sestavit snadno i bez hlubších znalostí:

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Krom toho je zde samozřejmě možnost komplexní nápovědy k regulárním výrazům. Ale o nápovědě si řekneme někdy příště.

V nabídce "Look in" se objevily další možnosti a to:

  • Current Directory (prohledá složku, která obsahuje aktuálně otevřený dokument)
  • Current Document (prohledá aktuálně otevřený dokument)

Nahrazování

S funkcemi vyhledávání úzce souvisí funkce nahrazování. Nahrazování funguje ve stejných režimech jako vyhledávání.

Důležité: Nezaměňujte nahrazování za funkci refactoring! Pokud chcete např. přejmenovat nějakou proměnnou, třídu nebo obecně část kódu, které Visual Studio rozumí, použijte možnost přejmenovat (refactoring). Visual Studio tím daný identifikátor inteligentně přejmenuje na všech jeho výskytech a nestane se, že omylem přejmenujete i něco jiného nebo naopak na nějaký výskyt zapomenete. Stačí kurzor umístit na daný identifikátor a stisknout Ctrl + R R, případně použít v menu Edit -> Refactor -> Rename.

Rychlé nahrazování

Rychlé nahrazování lze vyvolat šipečkou dolů u rychlého vyhledávání nebo přes nabídku Edit -> Find and Replace -> Quick Replace.

Přidává pouze políčko, kterým se bude nahrazovat a tlačítka pro postupné nahrazování. To nám umožňuje ručně vybírat, co se nahradí a co ne. Pokud jsme si jistí, můžeme použít i tlačítko Replace All, které nahradí vše. S tímto ale opravdu opatrně, dokumenty se velmi snadno rozbijí nerozvážným nahrazením něčeho, co jste si třeba ani neuvědomili, že také splňuje vaše kritéria.

Nahrazování v souborech

Nahrazování v souborech nabízí stejné možnosti. Kromě nich je zde při volbě vyhledávání pomocí regulárních výrazů i možnost do nahrazovaného řetězce vložit část hledaného řetězce. Díky tomu je snadné přeformátovat určitý řetězec na nový.

Příklad - Nahrazení tagů <script>

Jako příklad si vytvoříme seznam tagů <script>, které se vkládají do webových stránek pro načítání javascriptových souborů. Seznam souborů je vyexportovaný seznam z příkazové řádky Windows v jeho klasickém formátu. Ve složce jsou i soubory TypeScript a jeho napojení na Visual Studio. Ty zpracovávat nechceme, proto musíme nejprve soubor vyfiltrovat. Otevřete si soubor files.txt v souboru přiloženém pod článkem ve Visual Studio:

Prvních několik řádků bylo vyexportováno automaticky. Jelikož jsou jedinečné, musíme je smazat ručně. Stejně tak jsou zbytečné řádky na konci. První dva DOSové soubory také nechceme, proto je smažeme.

Vyfiltrování seznamu souborů provedeme nejsnáze pomocí regulárního výrazu. Doporučuji naučit se je, protože přepisovat milion řádků je vážně nuda a hlavně je to zbytečné.

Nejprve chceme smazat zbytečnosti na začátku řádku. Jelikož víme, že ten nepořádek okolo je přesně 36 znaků (toto číslo vidíme na stavovém řádku, kde se ukazuje pozice kurzoru), můžeme použít jednoduchý regulární výraz:

.{36}

Výraz popisovat nebudu (a ani to není třeba), ale můžete se podívat na tento článek, kde jsou regulární výrazy popsány. Okno vypadá takto:

Visual studio oznámí úspěch a počet nahrazených výskytů (213):

Následně potřebujeme převést soubory s příponou .js. To můžeme udělat opět pomocí regulárního výrazu. První část najde řádky:

^(.*js)\r

a ty jsou následně upraveny na tvar:

<script src="$1"></script>

$1 zde zastupuje první závorku - tedy celý název souboru (.*) a přípona js. \r na konci zajistí, že tím bude končit a výraz nevybere soubory s příponou js.map nebo soubory, které sice nemají příponu .js, ale mají js v názvu:

Třetí částí bude, že řádky, které teď začínají písmenem, odstraníme. To zajistí následující regulární výraz:

^[a-z].*\r\n

Výsledkem bude soubor, který bude mít 48 řádků, na kterých budou tagy <script> se soubory s příponou .js:

Soubor si můžete uložit jako v nabídce File -> Save Files.txt As...

Multikurzor

Závěrem si zmíníme ještě jednu šikovnou vychytávku, tzv. "multikurzor". Pomůže nám ve chvílích, kdy potřebujeme editovat stejný text na různých místech kódu. Když se například rozhodneme pro změnu několika proměnných z typu int na float, klepneme kurzorem před první int, stiskneme klávesu Ctrl + Alt a pokračujeme v umísťování kurzoru před ostatní integery. Pokaždé se nám objeví další kurzor. Když pak umazáváme nebo dopisujeme písmena, všechny kurzory pracují synchronně. Multikurzor zrušíme klepnutím na nějaké jiné místo v kódu. Vyzkoušejte si umazávání a dopisování textu ve svém Visual Studiu, ať si tuto užitečnou klávesovou zkratku zapamatujete:

Multikurzor ve Visual Studio

Gratuluji, již byste měli perfektně umět pracovat s nástroji vyhledat a nahradit ve Visual Studiu.

V příští lekci, Visual Studio - Navigace v souborech, se podíváme na možnosti navigace v souborech a jak zařadit nový nebo existující soubor do projektu.


 

Stáhnout

Staženo 684x (12.03 kB)

 

Předchozí článek
Visual Studio - Nastavení a formátování
Všechny články v sekci
Visual Studio - Pokročilá práce
Článek pro vás napsal Michal Žůrek - misaz
Avatar
Jak se ti líbí článek?
11 hlasů
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
Aktivity (8)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!