Vim перейти к определению метода / функции библиотеки std

Мне нравятся некоторые плагины, связанные с vim, и я установил большинство из них как подмодули git (clang_complete, cvim, fugitive, NerdTree, pathogen, snipMate, supertab, taglist) Однако есть две основные функции, которые я не могу заставить работать. то есть

1) Пример -> если я скомпилирую следующий пример

// basic file operations
#include <iostream>
#include <fstream>
using namespace std;

int main () {
ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();
return 0;
}

Я не могу понять, как перейти, например, к функции open, т. Е. «Myfile.open» из std. библиотека. Если я иду и вставляю код в Visual Studio и нажимаю кнопку «Перейти к определению», это приводит меня прямо к этому месту. Я читал, что это можно сделать с помощью ctags, однако я спрашиваю себя, работает ли автозаполнение, т.е. когда я набираю «myfile». Я вижу целую кучу методов, которые мне дает clang, так что я думаю, что это должно быть какой-то другой лучший способ перейти к определению из vim чего-то похожего на (ctrl +]), который должен работать из коробки.

2) В visual studio / .net всякий раз, когда я набираю точку. Я вижу методы, и когда я прокручиваю метод вниз, он дает краткое описание того, что делает этот метод. Есть ли способ включить нечто подобное в vim. Насколько я могу судить, это должно быть свойством библиотеки std, однако я не вижу ничего подобного в std.

3

Решение

Я думаю, вы путаете Vim с IDE.

Вы не может ожидать, что любая функция IDE будет доступна, по крайней мере, без особых усилий, в (очень мощном) Текстовый редактор.

  1. Vim эквивалент «Перейти к декларации», <C-]> или же :tag foo<cr> полагается на доступность одного или нескольких tags создано Обильные-Ctags или какая-нибудь совместимая программа с вашей кодовой базой и любыми стандартными библиотеками. Потому что Vim не приходит с таким tags файл для (AFAIK) любого языка, вам придется создать один самостоятельно и скажи Вим, где его найти. Там даже программа, hdrtagспециально для этого написано, Я никогда этим не пользовался.

  2. Я думаю, что я видел, что некоторые плагины автозаполнения показывают сигнатуру метода во всплывающем меню, некоторые другие (PHP, Python) открывают небольшое окно «предварительного просмотра». Это так далеко, как вы можете получить. Есть также <C-w>} если у вас есть актуальный tags файл.

Снова: Vim не является IDE.

3

Другие решения

Убедитесь, что ctags может найти исходный код, который находится в библиотеке std, когда вы генерируете индекс, и у вас все должно быть в порядке.

По умолчанию эти инструменты индексирования только добавляют код в текущий каталог (и его подпапки),
поэтому вам нужно вручную сообщить ему, где этот код установлен в вашей системе.

0

По вопросам рекламы [email protected]