LINUX.ORG.RU

vim set path для prefix header

 ,


0

2

В виме есть опция 'path', в которой перечисляются все места, куда смотрит #include ('include'). Если include-выражение явно указано в файле, то C-n, C-p подхватывают слова оттуда:

#include "myheader.h"
mytyC-n
mytype_t

Если же myheader.h инклудится как CPPFLAGS += -include myheader.h, то вим (очевидно) об этом не в курсе и не дополняет. Как сделать так, чтобы вим стал в курсе? Таких файлов немного, вернее он один и сам тянет остальные зависимости, и мне не впадлу его явно перечислить в .vimrc, но опцию именно для префикс-файла я не нашел. set path+=path/to/myheader.h предполагаемого эффекта не дает, равно как и гуглеж по сабжу.

В общем-то path/to имеется и в цели генерации тегов, из которых вим уже может подхватить, но перегенеривать теги каждый раз при изменении префикса муторно в силу некоторых причин. С инкрементальным тегированием копаться неохота. Есть ли простое вим-решение, чтобы работало например даже без тегов?

★★

Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от vvviperrr

Это я знаю. Проблема в том, что prefix header нигде в явном для вима виде не указывается. Он есть только в CPPFLAGS в Makefile.

arturpub ★★
() автор топика
Ответ на: комментарий от arturpub

я имею ввиду то, чтоб вим что-то дополнил через c-p/n, это что то должно быть в буфере. можно поискать make плагин, который будет анализировать мейкфайл.

vvviperrr ★★★★★
()
Ответ на: комментарий от arturpub

или просто поставь clang_complete, и дополняй через омни комплит комбинацию

vvviperrr ★★★★★
()
Ответ на: комментарий от vvviperrr

чтоб вим что-то дополнил через c-p/n, это что то должно быть в буфере

Или в файле, который спарсился регэкспом из 'include' и находится в путях из 'path'.

можно поискать make плагин, который будет анализировать мейкфайл.

Не ищется даже переменная — была бы, я бы в нее руками этот файл запихал.

clang_complete

Комплитеры не хочу, они тупят, и становится, как в IDE(c)(tm).
Да и опять же, как он узнает про префикс?

arturpub ★★
() автор топика
Последнее исправление: arturpub (всего исправлений: 2)
Ответ на: комментарий от arturpub

Да и опять же, как он узнает про префикс?

сненерить .clang_complete нужно, со всеми инклудами. это можно из мейкфайла сделать

vvviperrr ★★★★★
()
Ответ на: комментарий от vvviperrr

Это уже делает make tags -> .tags, не хочу его каждый раз дергать, но все равно спасибо.

anonymous
()
Ответ на: комментарий от anonymous

Если оно умеет в префиксы, то как это сделать, плиз?

Создать или глобальный, или локальный для проекта .ycm_extra_conf.py, в котором прописать пути до нужных для проекта хедеров + указать нужные для проекта дефайны и параметры для компилятора.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.