Foto s laskavým svolením:mint imperial
Tento článek je součástí probíhající série Vi / Vim Tipy a triky. Jako programátor nebo správce systému budete neustále procházet zdrojové kódy a skripty shellu.
Níže jsou uvedeny některé typické činnosti, které můžete provádět při procházení souboru zdrojového kódu:
- Přechod na definici funkce zadáním názvu funkce.
- Přechod na definici funkce z „volání funkce“.
- Opětovný návrat k volání funkce z definice.
- Zobrazení prototypu/podpisu funkcí nebo proměnných.
- Zobrazení počtu funkcí v souboru atd.
V tomto článku se podíváme na to, jak efektivně provádět výše uvedené činnosti v Editoru Vim pomocí ctagů a pluginu pro seznam tagů.
Techniky uvedené v tomto článku pomocí editoru Vim lze použít pro jakýkoli programovací jazyk.
I. Ctags Package Install and Configure
Krok 1:Instalace balíčku ctags
# apt-get install exuberant-ctags (or) # rpm -ivh ctags-5.5.4-1.i386.rpm warning: ctags-5.5.4-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:ctags ########################################### [100%]
Krok 2:Generování ctagů ve zdrojovém kódu
Přejděte do adresáře, kde se nachází váš zdrojový kód. V níže uvedeném příkladu jsem uložil veškerý zdrojový kód programování v C do adresáře ~/src.
# cd ~/src # ctags *.c
Příkaz ctags vytvoří značky názvu souboru, které budou obsahovat všechny požadované informace (tagy) o souborech programu *.c. Následuje částečný výstup položek tagů v souboru ctags.
# cat tags AddAcl dumputils.c /^AddAcl(PQExpBuffer aclbuf, const char *keyword)$/;" f file: ArchiveEntry pg_backup_archiver.c /^ArchiveEntry(Archive *AHX,$/;" f AssignDumpId common.c /^AssignDumpId(DumpableObject *dobj)$/;" f
II. 4 výkonné použití Ctags v editoru Vim
1. Přejděte k definici funkce zadáním názvu funkce pomocí :ta
V níže uvedeném příkladu vás :ta main zavede k definici hlavní funkce v mycprogram.c
# vim mycprogram.c :ta main
Pomocí této funkce můžete přejít k libovolné definici funkce zadáním názvu funkce.
2. Přechod na definici funkce z ‚volání funkce‘ pomocí Ctrl + ]
Když je kurzor pod voláním funkce, stiskněte CTRL + ] pro přechod na definici funkce. V následujícím příkladu, když je kurzor ve volání funkce ssh_xcalloc, stisknutím Ctrl + ] se dostanete k definici funkce ssh_xcalloc.
# vim mycprogram.c av = ssh_xcalloc(argc, sizeof(char *));
Poznámka: Pokud ctags nemohly najít tuto funkci, zobrazí se ve stavovém řádku vim ve spodní části následující zpráva:Značka E426 nenalezena ssh_xcalloc
3. Návrat zpět k volání funkce z definice pomocí Ctrl + t
Stiskněte CTRL + t, čímž se znovu vrátíte k volání funkce.
4. Procházení seznamu názvů funkcí, které mají podobné názvy
V tomto příkladu :ta přejde na definici funkce, jejíž název začíná get, a také vytvoří seznam pro navigaci s relevantními funkcemi.
# vim mycprogram.c :ta /^get
Následující příkazy vim lze použít k procházení relevantními funkcemi
- :ts – zobrazí seznam.
- :tn – přejde na další značku v tomto seznamu.
- :tp – přejde na předchozí značku v tomto seznamu.
- :tf – přejde na funkci, která je na prvním místě v seznamu.
- :tl – přejde na funkci, která je na konci seznamu.
III. Taglist Plugin:Vim Editor jako konečný prohlížeč zdrojového kódu
Výše uvedené značky Ctag možná neposkytly pocit procházení zdrojového kódu, protože jsou řízeny příkazy namísto vizuálního procházení kódu. Pokud tedy chcete procházet zdrojovým kódem jako v prohlížeči souborů, musíte použít plugin vim taglist, díky kterému je vim prohlížeč zdrojového kódu.
Autor pluginu vim taglist Yegappan Lakshmanan o tom říká jako
Plugin „Tag List“ je plugin prohlížeče zdrojového kódu pro Vim a poskytuje přehled o struktuře souborů zdrojového kódu a umožňuje vám efektivně procházet soubory zdrojového kódu pro různé programovací jazyky.
Krok 1:Stáhněte si plugin Vim Taglist
Stáhněte si jej z webu vim.org, jak je uvedeno níže.
$ cd /usr/src $ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
Krok 2:Nainstalujte plugin TagList Vim
$ mkdir ~/.vim # if the directory does not exist already $ cd ~/.vim $ unzip /usr/src/taglist.zip Archive: /usr/src/taglist.zip inflating: plugin/taglist.vim inflating: doc/taglist.txt
Krok 3:Povolte plugin v ~/.vimrc
Přidejte následující řádek do ~/.vimrc, abyste povolili plugin pro editor Vim.
$ vim ~/.vimrc filetype plugin on
Předběžné: Chcete-li používat plugin pro seznam tagů, je třeba nainstalovat ctags. Není však nutné generovat seznam značek ručně pomocí příkazu ctags pro použití pluginu taglist.
IV. 5 výkonných funkcí pluginu Taglist Vim
1. Otevřete okno Seznam značek ve Vimu pomocí :TlistOpen
# vim mycprogram.c :TlistOpen
Z editoru vim spusťte :TlistOpen, jak je uvedeno výše, čímž se otevře okno se seznamem značek se značkami aktuálního souboru, jak je znázorněno na obrázku níže.
Obr: Vim – Zdrojový kód Tag/Seznam funkcí Windows
2. Přejít na definici funkce ve zdrojovém kódu
Kliknutím na název funkce v levém panelu budete moci přejít k definici funkce, jak je znázorněno na obrázku níže.
Obr: Rychle přejděte na definici funkce
Kromě rychlého přeskakování na názvy funkcí můžete přeskočit na třídy, struktury, proměnné atd. kliknutím na odpovídající hodnoty v prohlížeči značek na levé straně.
3. Přejděte na definici funkce, která je v jiném zdrojovém souboru
Když procházíte funkcí ve zdrojovém souboru a chcete přejít na definici funkce, která je v jiném souboru, můžete to udělat dvěma různými metodami.
Metoda 1:
Pokud jste pro tento soubor nechali vygenerovat ctagy, když je kurzor ve volání funkce, stisknutím CTRL + ] se dostanete k definici funkce. A okno seznamu značek automaticky zobrazí značky pro tento nově otevřený soubor.
Metoda 2:
Otevřete další soubor také ve stejné relaci vim, což aktualizuje okno seznamu značek informacemi o tomto souboru. Vyhledejte název funkce v okně se seznamem značek a stisknutím
4. Zobrazení prototypu/podpisu funkcí nebo proměnných.
Stisknutím „mezera“ v názvu funkce nebo v názvu proměnné v okně seznamu značek zobrazíte její prototyp (signaturu funkce) ve stavovém řádku VIM, jak je znázorněno níže. V níže uvedeném příkladu klikněte na funkci selectDumpableTable v okně Tag a stiskněte mezerník, čímž se zobrazí podpis funkce pro funkci selectDumptableTable ve spodním stavovém řádku Vim.
Obr: Zobrazit podpis funkce na stavovém řádku Vim
5. Zobrazení celkového počtu funkcí nebo proměnných v souboru zdrojového kódu
stiskněte „mezera“ v typu tagu v okně seznamu tagů, kde se zobrazí jeho počet. V níže uvedeném příkladu, když je kurzor na „funkci“, stiskněte mezerník, čímž se zobrazí celkový počet funkcí v aktuálním zdrojovém kódu.
Obr: Zobrazení celkového počtu funkcí dostupných ve zdrojovém kódu
Chcete-li efektivně psát nové soubory zdrojového kódu pomocí Vim, přečtěte si naše dřívější články:
- Udělejte Vim jako své IDE Perl pomocí pluginu perl-support.vim
- Udělejte z Vimu své IDE C/C++ pomocí pluginu c.vim
- Udělejte z Vimu své Bash-IDE pomocí pluginu podporující bash.
Doporučená četba
Vim 101 Hacks, od Rameshe Natarajan . Jsem feťák z příkazového řádku. Takže jsem přirozeně velkým fanouškem editorů Vi a Vim. Před několika lety, když jsem psal hodně kódu C na Linuxu, jsem četl všechny dostupné tipy a triky editoru Vim. Na základě svých zkušeností s editorem Vim jsem napsal e-knihu Vim 101 Hacks, která obsahuje 101 praktických příkladů různých pokročilých funkcí Vim, díky nimž budete v editoru Vim rychlý a produktivní. I když používáte editory Vi a Vim několik let a nečetli jste tuto knihu, udělejte si laskavost a přečtěte si tuto knihu. Budete ohromeni možnostmi editoru Vim.
Úžasné články editoru Vim
Následuje několik skvělých návodů editoru Vi / Vim které by vám mohly pomoci.
- 12 účinných příkladů hledání a nahrazování pro editor Vim
- Výukový program makra Vi a Vim:Jak nahrávat a přehrávat
- Turbocharge prohlížeč Firefox s funkcí Vim Editor pomocí doplňku Vimperator
Poznámka: Přihlaste se k odběru The Geek Stuff a nenechte si ujít žádné budoucí tipy a triky editorů Vi a Vim .