Jestem pewien, że widziałem dokumentację vim (:help ft-c-omni
) w ten sposób: "".
Podczas korzystania CTRL-X CTRL-O po nazwie bez lub "->" zostało zakończone bezpośrednio z pliku znaczników. Działa to dla dowolnego identyfikatora, a także dla nazw funkcji . Jeśli chcesz uzupełnić nazwę zmiennej lokalnej, która nie pojawia się w pliku znaczników jako , użyj zamiast niej CTRL-P.
Podczas korzystania z CTRL-X CTRL-O po czymś, co "." lub "->" Vim spróbuje rozpoznać typ zmiennej i dowiedzieć się, jakie jej członkowie mają. Oznacza to, że na liście znajdą się tylko członkowie ważni dla zmiennej.
Po wprowadzeniu nazwy członka, CTRL-X CTRL-O doda "." lub "->" dla typów kompozytowych.
Jeśli poprawnie odczytam, wbudowana funkcja w najlepszym wypadku pozwoli tylko na użycie CTRL-P i dopasowanie nazw zmiennych lokalnych, tym samym pomijając całkowicie plik TAGS.
To, czego naprawdę chcesz, to plik TAGS, który jest specyficzny dla jednostki tłumaczeniowej, nad którą aktualnie pracujesz (plik nagłówkowy/cpp). Oto kroki, które wykonywałbym, próbując rozwiązać ten problem:
- Utwórz skrypt (lub jeszcze lepiej, włącz do pliku Makefile) automatyczne tworzenie plików TAG specyficznych dla jednostki tłumaczeniowej.
- Utwórz komendę w vim, która usuwa istniejące pliki TAGS, ponownie ładuje plik TAGS specyficzny dla pliku i przeprowadza regularne omni-complete w postaci
CTRL-X CTRL-O
. W razie potrzeby powróć do oryginalnego TAGU.
Wydaje mi się, że chciałbyś móc wywołać skrypt dla # 1 bezpośrednio z VIM, ponieważ często zmieniasz bieżącą jednostkę tłumaczeniową podczas kodowania.
Mam nadzieję, że wszystko zaczęło się we właściwym kierunku, a ja z chęcią zobaczę/pomogę w implementacji =).
To samo pytanie - bez rozwiązania:/http://stackoverflow.com/questions/1224838/vim-php-omni-completion – nuqqsa