Автозавершення C / C + + у vim

Автозавершення є чудовою функцією для програмістів, які працюють на різних типах мов програмування, таких як мови C / C + +. Редактор Vim надає цю функцію під Windows або Linux . Автозавершення C / C + + у Vim шукає слова, введені з файлу, який раніше зберігав у ньому свої теги . Користувач, за допомогою апаратного компонента системи, тобто клавіатури, налаштує клавішу, щоб перейти до процесу перегляду збережених тегів. Проте було б доцільно тримати очі відкритими для будь-яких слів, які не мають сенсу.

  • Установка
  • Конфігурація
  • Використовуйте
  • Посилання

Цей підручник орієнтований на людей, які використовують Vim на Linux. Автоматичне заповнення - це звична функція для користувачів Linux, проте іноді вона може запропонувати слова, які не мають сенсу в контексті. Це може засмучувати при програмуванні, оскільки автоматичне заповнення може запропонувати, наприклад, тип, коли метод очікується на той момент у коді.

 class plop () {protected: int plopons; public: plop () {} void plopez () {}}; int main () {plop p; стор. // <- Ctrl P прцедура послідовності: plopez, plop ... alors que c'est forcément plopons повертають 0; } 

Плагін, заснований на ctags Vim, дозволяє створити більш інтелектуальне автозаповнення, яке може враховувати контекст, у якому використовується слово.

Установка

Почнемо з встановлення ctags. Наприклад, у дистрибутивах на основі Debian або Debian (ubuntu, xandros і т.д.):

 sudo aptitude update sudo aptitude безпечне оновлення sudo aptitude встановлення буйних ctags 

Він також відновлює плагін Vim для автозаповнення:

//www.vim.org/scripts/script.php?script_id=1520

Ми зробимо все, що стосується самореалізації в ~ /. Vim:

 mkdir -p ~ / .vim / tags mv omnicpp * zip ~ / .vim cd ~ /. 

Ctags вміє розглядати проблему заголовків QT, OpenGL, SDL. Однак, для STL, ви повинні отримати заголовки "простий" тут: \ t

//www.vim.org/scripts/script.php?script_id=2358

Він розпаковує архів і створює теги з STL:

 tar xjvf cpp_src.tar.bz2 ctags -R --c ++ - types = + p - полі = = iaS --extra = + q - лінгво - сила = C ++ cpp_src && mv теги ~ / .vim / tags / stl 

Тепер він генерує теги для встановлених бібліотек (які будуть адаптовані, якщо бібліотеки встановлені в іншому місці). Наприклад, у бібліотеках OpenGL, SDL і QT просто введіть наступні три команди:

c

 теги -R --c ++ - види = + p --поля = + iaS --extra = + q --мовна сила = C ++ / usr / include / GL / && mv теги ~ / .vim / tags / gl ctags - R - c ++ - types = + p - полі = = iaS --extra = + q - лінгво - сила = C ++ / usr / include / SDL / && mv теги ~ / .vim / tags / sdl ctags -R - -c ++ - species = + p - поля = + iaS --extra = + q --l-мова-сила = C ++ / usr / include / qt4 / && mv теги ~ / .vim / tags / qt4 

Конфігурація

Тепер ми повинні сказати vim для завантаження файлів плагінів і різних тегів. Для цього просто додайте до кінця файлу ~ /. Vimrc наступні рядки:

 "prérequis tags set nocp filetype plugin on" налаштувати теги - додавати тут додаткові теги або коментувати невикористані теги + = ~ / .vim / tags / stl set tags + = ~ / .vim / tags / gl set tags + = ~ / .vim / tags / sdl set tags + = ~ / .vim / tags / qt4 "збирати теги власного проекту з CTRL + F12" map:! ctags -R --c ++ - species = + p --fields = + iaS - -екстра = + q. noremap:! ctags -R --c ++ - види = + p - поля = + iaS --extra = + q. inoremap:! ctags -R --c ++ - види = + p - поля = + iaS --extra = + q. "OmniCppComplete дозволяє OmniCpp_NamespaceSearch = 1 дозволити OmniCpp_GlobalScopeSearch = 1, щоб OmniCpp_ShowAccess = 1 дозволив OmniCpp_MayCompleteDot = 1 дозволити OmniCpp_MayCompleteArrow = 1 дозволити OmniCpp_MayCompleteScope = 1 дозволити OmniCpp_DefaultNamespaces = [" std ", " _GLIBCXX_STD "]" автоматично відкривати та закривати спливаюче меню / вікно попереднього перегляду CursorMovedI, InsertLeave * якщо pumvisible () == 0 | silent! pclose | endif набір completeopt = меню, меню, найдовший, попередній перегляд 

Якщо теги створювалися лише для деяких файлів, коментуйте інший, додаючи до початку рядка. Наприклад, якщо ми не створили ~ /.vim/tags/gl та ~ / .vim / tags / sdl:

 встановити теги + = ~ / .vim / tags / stl "встановити теги + = ~ / .vim / tags / gl" встановити теги + = ~ / .vim / tags / sdl set tags + = ~ / .vim / tags / qt4 

Ми просто повинні зберегти файл і (повторно) запустити vim так, щоб вони відображали зміни в ~ /. Vimrc.

Використовуйте

Все, що було попередньо позначено тегами (тобто в цьому навчальному посібнику міститься STL, QT, SDL і OpenGL), вже доступне в автоматичному завершенні. Просто натисніть ctrl p або n. Після того, як з'явиться список, можна за допомогою стрілок виділити гарну пропозицію і натиснути клавішу enter.

Проте вона не повністю закінчена. Він повинен регенерувати теги символів (змінних, функцій, типів ...), специфічних для проекту, який розробляється. Це знову створить файл тегів. І, звичайно, він буде оновлювати файл кожного разу, коли ви додаєте, видаляєте або змінюєте символ проекту так, щоб він був поточним.

Як це часто трапляється, рекомендується зіставити клавішу на клавіатурі, щоб викликати процес ctags. У прикладі файлу ~ / .Vimrc, який я дав, це забезпечується натисканням клавіші F12.

Посилання

//vim.wikia.com/wiki/C++_code_completion

//www.vim.org/scripts/script.php?script_id=1520

//www.vim.org/scripts/script.php?script_id=2358

Попередня Стаття Наступна Стаття

Кращі Поради