vim complete, függvény deklarációs popup

Fórumok

Már egy ideje Vim-et használok és le vagyok tőle nyűgözve, de emellett sajnos az a tapasztalatom, hogy a testhezállósághoz nagyon sokat kell hegeszteni... (a .vimrc jelenleg 425 soros)

Elsősorban olyan módszert keresek, ami egy függvénynév után álló ( jel hatására kiírja a függvény deklarációját, lehetőség szerint addig, amíg a ) jelet le nem ütöm.
Igaz ugyan, hogy a ctags-et nagyon sok helyen említik, de olyan megoldás érdekelne igazán, ami nem csak a C és C++ nyelveknél működik.

Másfelől nem igazán értem az omni-completion mibenlétét - ezt egy péládval mutatom be:



#include <stdio.h>

int
main( void )
{
    struct
    {
        int
            i, j;

    } bla;

    bla.                /* <C-X><C-O> hatasara nem tortenik semmi, pedig a
                         * lehetosegeket kellene felsorolnia: i, j
                         * omnifunc: ccomplete#Complete
                         */

        return( 0 );
}

Én értettem valamit félre, vagy valamilyen beállítás hiányzik, amiről nem tudok?

Hozzászólások

Lehet, hogy félreértettelek, de úgy dekódolom, hogy a ctags-et hanyagolod.
Ez csak azért fontos, mert (csak a probléma kedvéért olvastam át), a help szerint:

FILETYPE-SPECIFIC REMARKS FOR OMNI COMPLETION
...
Completion of C code requires a tags file.

(kiemelés tőlem)

Továbbá ctags használatával is csak akkor tudtam rávenni a működésre, ha a ctagset a lokális azonosítók kezelésére is rábírtam (ez érthető), ÉS nem azonnali struktúradeklarációt használtam (ez meglepett):


ctags --c-kinds=+deflgpstux x.c

...
struct x
{
int
i, j;

} ;

struct x bla;
...

Ekkor vim -t bla parancsra megvan a kívánt hatás.

Továbbá a ctags --list-languages mutatja, hogy egyéb nyelveknél se vagyunk magunkra hagyva.

Valóban úgy tűnik, hogy a ctags erre a legalkalmasabb, de találtam egy 'félmegoldást', csak az a baj, hogy nomral parancs és insert módba sehogy se tudombeleerőszakolni:
[i és [I a parancsszavon
--
Azt akarom, hogy az emberek ne kényszerből tanuljanak, hanem azért, mert tudni akarnak.

Asszem az omnicomplete nem kepes az adott kodot inspektalni, erre a <C-N> valo, ha jol emlekszem.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal