Настройка Vim для проблем с полным заполнением и ctags

Я только начинаю использовать vim в течение полумесяца, так как я хочу использовать его для кода C ++, я просто устанавливаю омникомплецию для автоматического завершения кода.

Однако, когда я следую инструкциям в файле omnicppcomplete.txt (я скачал Exuberant Ctags и установил его с помощью команды "./configure && make && sudo make install"), я обнаружил, что ошибка все равно выскакивает (недопустимая команда ctags -R ), чтобы избежать использования ctags, которые уже есть на моем Mac, я добавляю «export PATH = / usr / local / bin: $ PATH» в свой файл .zshrc и добавляю «let Tlist_Ctags_Cmd = '/ usr / local / bin / ctags '"в моем файле .vimrc.

Однако я до сих пор не могу выполнить команду «ctags -R --c ++ - types = + p --fields = + iaS --extra = + q.», С ошибкой «недопустимые ctags -R». Кто-нибудь может с этим помочь? Большое спасибо!


person Jiahui Guo    schedule 23.06.2012    source источник
comment
Вы запускаете команду из vim или из оболочки? Каков результат :echo $PATH в Vim и $ echo $PATH в вашей оболочке?   -  person romainl    schedule 23.06.2012
comment
Я запускаю эту команду в своей оболочке (zsh), и когда я запускаю echo $ PATH, результатом является echo $ PATH / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / X11 / bin: / usr / texbinСпасибо! @romainl   -  person Jiahui Guo    schedule 23.06.2012
comment
В Vim оказалось, что это недопустимая команда для echo $ PATH   -  person Jiahui Guo    schedule 24.06.2012
comment
Это странно. :echo $PATH - это классика. Попробуйте :echo $, а затем <tab>, чтобы увидеть все доступные переменные среды.   -  person romainl    schedule 24.06.2012
comment
К сожалению, в прошлый раз я мог сделать ошибку, я пробовал это в vim, и это выглядит так: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / X11 / bin : / usr / texbin @ romainl   -  person Jiahui Guo    schedule 24.06.2012
comment
Что ж, я заблудился. Вы после установки открывали новую оболочку? Попробуйте $ which ctags и / или $ /usr/local/bin/ctags в своей оболочке. Если он не может найти ctags, значит, вы прикрутили установку.   -  person romainl    schedule 24.06.2012
comment
ctags есть. Но я обнаружил, что ctags существуют в / usr / bin и /usr/local/bin.@romainl   -  person Jiahui Guo    schedule 24.06.2012
comment
Я совсем его пропустил, извините. Вам нужно только вручную отредактировать ваш _1 _. * Rc так, чтобы поиск /usr/local/bin выполнялся до /usr/bin   -  person romainl    schedule 24.06.2012
comment
Привет, я последовал вашему методу, и теперь он работает, но другая проблема в том, что омникомплект может только автоматически завершать std :: functions. Пока я создаю класс, автоматическое завершение функции-члена не может помочь. Вы знаете, как это решить? Большое спасибо за вашу огромную помощь! @Romainl   -  person Jiahui Guo    schedule 26.06.2012
comment
Забудьте о omnicppcomplete, перейдите к clang_complete. Инструкции на официальном веб-сайте и здесь   -  person milton    schedule 28.08.2012


Ответы (1)


Дело в том, что вы используете Mac и должны использовать Mac-порты для переопределения стандартных ctags osx, а не настраиваемую сборку ваших ctags. Это должно вернуть вас в нужное русло

  • Удалите созданные вами ctags из источника: в каталоге src, в котором вы его собираете, попробуйте

    sudo make uninstall

  • Откройте новую оболочку после установки портов (чтобы загрузить новую конфигурацию системы из .profile / .zshrc и т. Д.)

  • Затем установите ctags из репозитория портов, поэтому сначала установите Mac Ports, а затем установите ctags через порты:

    sudo port install ctags

  • Если вы использовали место установки по умолчанию для портов, ваш файл shell-rc должен указывать PATH на /opt/local/bin. Ваши ctags (с поддержкой -R) должны быть в (/opt/local/bin/ctags), но для 100% -ной уверенности проверьте, где ваша система его находит, набрав:

    which ctags

    должен дать вам

    /opt/local/bin/ctags

  • Теперь проверьте свой PATH из vim (:echo $PATH), который должен предшествовать каталогу портов (/ opt / local / bin).

Чтобы протестировать автозавершение кода (а не автозавершение) из vim (предполагается, что vim указывает на правильный :tags файл, прочтите справку по тегам:), вам не нужно ничего устанавливать.

  • Просто введите Ctrl-N в режиме вставки, и должен появиться список возможных идентификаторов.
person count0    schedule 27.08.2012