Foto per gentile concessione:menta imperiale
Questo articolo fa parte della serie in corso di Vi / Vim Tips and Tricks. In qualità di programmatore o amministratore di sistema, esplorerai costantemente codici sorgente e script di shell.
Di seguito sono elencate alcune attività tipiche che potresti eseguire durante la navigazione in un file di codice sorgente:
- Navigare alla definizione della funzione specificando il nome della funzione.
- Spostamento alla definizione della funzione da "chiamata di funzione".
- Tornando di nuovo alla chiamata di funzione dalla definizione.
- Visualizzazione del prototipo/firma di funzioni o variabili.
- Visualizzazione del numero di funzioni in un file, ecc.
In questo articolo, esaminiamo come eseguire le attività di cui sopra in modo efficiente in editor Vim usando ctags e plugin di taglist.
Le tecniche menzionate in questo articolo utilizzando l'editor Vim possono essere utilizzate per qualsiasi linguaggio di programmazione.
Io. Installazione e configurazione del pacchetto Ctags
Fase 1:installazione del pacchetto 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%]
Fase 2:generazione di ctag sul tuo codice sorgente
Vai alla directory in cui si trova il tuo codice sorgente. Nell'esempio seguente, ho memorizzato tutto il mio codice sorgente di programmazione C nella directory ~/src.
# cd ~/src # ctags *.c
Il comando ctags creerà un tag nome file che conterrà tutte le informazioni richieste (tag) sui file di programma *.c. Di seguito è riportato l'output parziale delle voci dei tag nel file 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 potenti utilizzi di Ctags all'interno di Vim Editor
1. Passare alla definizione della funzione specificando il nome della funzione utilizzando :ta
Nell'esempio seguente, :ta main ti porterà alla definizione della funzione principale all'interno di mycprogram.c
# vim mycprogram.c :ta main
Utilizzando questa funzione è possibile accedere a qualsiasi definizione di funzione specificando il nome della funzione.
2. Navigare alla definizione della funzione da "richiamo di funzione" usando Ctrl + ]
Quando il cursore si trova sotto la chiamata di funzione, premere CTRL + ] per passare alla definizione della funzione. Nell'esempio seguente, quando il cursore si trova nella chiamata di funzione ssh_xcalloc, premendo Ctrl + ] si accede alla definizione della funzione ssh_xcalloc.
# vim mycprogram.c av = ssh_xcalloc(argc, sizeof(char *));
Nota: Se i ctag non riescono a trovare quella funzione, riceverai il seguente messaggio nella barra di stato di vim in basso:tag E426 non trovato ssh_xcalloc
3. Tornando di nuovo alla chiamata di funzione dalla definizione usando Ctrl + t
Premere CTRL + t per tornare alla chiamata di funzione.
4. Navigazione in un elenco di nomi di funzioni che hanno nomi simili
In questo esempio, :ta andrà alla definizione della funzione il cui nome inizia con get e costruirà anche un elenco per navigare con le funzioni pertinenti.
# vim mycprogram.c :ta /^get
I seguenti comandi vim possono essere usati per navigare attraverso le funzioni rilevanti
- :t – mostra l'elenco.
- :tn – va al tag successivo nell'elenco.
- :tp – va al tag precedente nell'elenco.
- :tf – va alla funzione che si trova nella prima della lista.
- :tl – va alla funzione che è nell'ultima della lista.
III. Plugin Taglist:Vim Editor come Ultimate Source Code Browser
I Ctag di cui sopra potrebbero non aver dato una sensazione di navigazione del codice sorgente, poiché è guidato da comandi invece di sfogliare visivamente il codice. Quindi, se vuoi navigare attraverso il sorgente come se navighi nel browser dei file, devi usare il plugin vim taglist che rende vim come browser del codice sorgente.
L'autore del plugin vim taglist Yegappan Lakshmanan, ne parla come
Il plug-in "Tag List" è un plug-in del browser del codice sorgente per Vim e fornisce una panoramica della struttura dei file del codice sorgente e consente di sfogliare in modo efficiente i file del codice sorgente per diversi linguaggi di programmazione.
Fase 1:scarica il plugin Vim Taglist
Scaricalo dal sito web vim.org come mostrato di seguito.
$ cd /usr/src $ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
Fase 2:installa il plug-in 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
Fase 3:abilita il plugin in ~/.vimrc
Aggiungi la seguente riga a ~/.vimrc per abilitare il plugin per l'editor Vim.
$ vim ~/.vimrc filetype plugin on
Prerequisito: ctags dovrebbe essere installato per usare il plugin taglist. Ma non è necessario generare manualmente l'elenco dei tag tramite il comando ctags per utilizzare il plug-in di taglist.
IV. 5 potenti funzionalità del plugin Taglist Vim
1. Apri la finestra dell'elenco dei tag in Vim usando :TlistOpen
# vim mycprogram.c :TlistOpen
Dall'editor di vim, eseguire :TlistOpen come mostrato sopra, che apre la finestra dell'elenco dei tag con i tag del file corrente come mostrato nella figura seguente.
Fig: Vim – Finestre dell'elenco di tag/funzioni del codice sorgente
2. Vai alla definizione della funzione all'interno di un codice sorgente
Facendo clic sul nome della funzione nel pannello di sinistra, potresti passare alla definizione della funzione come mostrato nella figura seguente.
Fig: Passa rapidamente a una definizione di funzione
Oltre a saltare rapidamente ai nomi delle funzioni, puoi passare a classi, strutture, variabili, ecc., facendo clic sui valori corrispondenti dal tag-browser nella parte sinistra.
3. Passa alla definizione della funzione che si trova in un altro file sorgente
Quando stai esaminando una funzione in un file sorgente e vuoi andare alla definizione della funzione che si trova in un altro file, puoi farlo in due metodi diversi.
Metodo 1:
Se avevi i ctag generati per quel file, quando il cursore è nella chiamata alla funzione, premendo CTRL + ] sarai portato alla definizione della funzione. E automaticamente la finestra dell'elenco dei tag mostrerà i tag per quel file appena aperto.
Metodo 2:
Apri un altro file anche nella stessa sessione di vim che aggiornerà la finestra dell'elenco dei tag con le informazioni su quel file. Cerca il nome della funzione nella finestra dell'elenco dei tag e premendo
4. Visualizzazione del prototipo/firma di funzioni o variabili.
Premere "spazio" nel nome della funzione o nel nome della variabile nella finestra dell'elenco dei tag per mostrarne il prototipo (firma della funzione) nella barra di stato del VIM come mostrato di seguito. Nell'esempio seguente, fai clic sulla funzione selectDumpableTable dalla finestra Tag e premi la barra spaziatrice, che mostra la firma della funzione per la funzione selectDumptableTable nella barra di stato di Vim inferiore.
Fig: Visualizza la firma della funzione nella barra di stato di Vim
5. Visualizzazione del numero totale di funzioni o variabili in un file di codice sorgente
premere "spazio" nel tipo di tag nella finestra dell'elenco dei tag, che ne mostra il conteggio. Nell'esempio seguente, quando il cursore si trova su "funzione", premi lo spazio, che visualizzerà il numero totale di funzioni nel codice sorgente corrente.
Fig: Visualizza il numero totale di funzioni disponibili nel codice sorgente
Per scrivere in modo efficace nuovi file di codice sorgente usando Vim, fare riferimento ai nostri articoli precedenti:
- Rendi Vim come il tuo IDE Perl usando il plugin perl-support.vim
- Rendi Vim come IDE C/C++ usando il plug-in c.vim
- Rendi Vim come il tuo Bash-IDE usando il plug-in bash-support.
Lettura consigliata
Vim 101 Hacks, di Ramesh Natarajan . Sono un drogato da riga di comando. Quindi, naturalmente sono un grande fan degli editor di Vi e Vim. Diversi anni fa, quando scrivevo molto codice C su Linux, leggevo tutti i suggerimenti e i trucchi disponibili per l'editor Vim. Sulla base della mia esperienza con l'editor Vim, ho scritto l'eBook Vim 101 Hacks che contiene 101 esempi pratici su varie funzionalità avanzate di Vim che ti renderanno veloce e produttivo nell'editor Vim. Anche se usi Vi e Vim Editor da diversi anni e non hai letto questo libro, per favore fatti un favore e leggi questo libro. Rimarrai stupito dalle capacità dell'editor Vim.
Fantastici articoli sull'editor di Vim
Di seguito sono riportati alcuni fantastici tutorial dell'editor Vi / Vim che potresti trovare utile.
- 12 potenti esempi di ricerca e sostituzione per Vim Editor
- Tutorial Macro Vi e Vim:come registrare e riprodurre
- Browser Firefox turbo con funzionalità Vim Editor utilizzando il componente aggiuntivo Vimperator
Nota: Iscriviti a The Geek Stuff e non perdere nessun futuro Suggerimenti e trucchi per editor di Vi e Vim .