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ýrazuRegexOptions
) - 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í:
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 s tagy <script>
odkazující na
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:
Gratuluji, již byste měli perfektně umět pracovat s nástroji vyhledat a nahradit ve Visual Studiu.
V následujícím kvízu, Kvíz - Okna, vyhledávání a formátování kódu ve Visual Studiu, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkamiStaženo 1315x (12.03 kB)