LINUX.ORG.RU

Vim для кодинга

 ,


2

8

Накидайте туториалов, как использовать Vim для кодинга на C++, с поддержкой сборки прямо из редактора, gdb, git, может ещё чего-нибудь вкусного. Начиная от самых основ, например как проиндексировать проект.

Хотелось бы без сторонних костылей, конечно.

★★★★★

Чисто в vim'e неудобно(это я как любитель поделки говорю). Печальней всего с отладчиком.

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

pon4ik ★★★★★ ()

Включи FakeVim в QtCreator и не парься.

Esper ()

с поддержкой сборки прямо из редактора

:make или :!make, можешь повесить на хоткей

gdb

Не знаю, не пользуюсь

git
Начиная от самых основ, например как проиндексировать проект

!git add ., можешь повесить на хоткей

Не, ну а чего ты хотел? Обвеситься десяткой пердящих плагинов по хаутушке от васи из интернета и сразу стать Ъ? Это не vim-way. Единственный совет, который тут можно дать - это просто брать и

использовать Vim для кодинга на C++

Постепенно ты будешь сам чувствовать, какого функционала именно ТЕБЕ не хватает - берёшь и добавляешь. А если нужен готовый комбайн, так выше уже советовали IDE.

Удачи!

Crocodoom ★★★★★ ()

Автодополняшки с переходами к объявлению есть в YouCompleteMe, git в Fugitive.

Ceiling_QB ★★★★ ()

Начиная от самых основ, например как проиндексировать проект.

clang + rtags + vim-rtags

с поддержкой сборки прямо из редактора

:make из коробки, правда только синхронный

gdb, git

не нужно.

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

gdb

не нужно.

Просто интересно - пользуешься консольным? Или сразу выпускаешь бабочек воздействуя на магнитные поля?

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

Для своего кода никаким не пользуюсь. Для post-mortem отладки раз в год запускаю gdb -c. Если надо поковырять какую-то системную программу, а времени изучать весь её код нет, то ставлю соответствующие debuginfo и аттачу gdb к процессу.

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

На плюсах, на кутэ. Управление дорохими транклюкаторами и обработка данных от них.

d_a ★★★★★ ()

Ставишь Vundle и с vimawesome.com собираешь, что надо. Монстр получится еще тот. Лучше сразу в QtCreator или Clion.

anonymous ()

поддержкой сборки прямо из редактора, gdb, git

Дергаю все из соседней консоли. В каком-то виде можно встроить конечно, но мне показалось что костыли отовсюду торчат. Может в neovim условия для всего этого получше сделают.

vazgen05 ★★★ ()

Для поддержки gdb или lldb нет ничего нормального. Есть заброшенный проект от llvm, но у меня с ним не срослось.

А для работы с C++ я использую следующий набор:
vim-scripts/a.vim
Valloric/YouCompleteMe
junegunn/fzf + junegunn/fzf.vim
SirVer/ultisnips
scrooloose/nerdcommenter
scrooloose/syntastic
tpope/vim-fugitive
Chiel92/vim-autoformat
noahfrederick/vim-skeleton
justinmk/vim-syntax-extra

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

:make из коробки, правда только синхронный

Есть tpope/vim-dispatch для асинхронного запуска, но у меня он не прижился. Мне удобнее или запускать нативно :make args (если нужна навигация по warning/error), или выполнять сборку в отдельном окне терминала.

gdb, git

не нужно.

Нужны оба, но адекватной поддержки gdb нет.

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

Ставишь Vundle и с vimawesome.com собираешь, что надо.

Есть же нормальные менеджеры плагинов. Например plug.

Монстр получится еще тот.
Лучше сразу в QtCreator или Clion.

Действительно, что qtcreator, что clion - монстры.

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

Может в neovim условия для всего этого получше сделают.

Или pon4ik соберется с силами и доведет до ума свою разработку.

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

Есть tpope/vim-dispatch для асинхронного запуска, но у меня он не прижился. Мне удобнее или запускать нативно :make args (если нужна навигация по warning/error), или выполнять сборку в отдельном окне терминала.

Есть много плагинов для асинхронщины, но там надо уже по факту выяснять что у него, 7, 8 или neovim, а мне лень. tpope/vim-dispatch юзал сам вместе с vim 7 из-под tmux, оно криво заполняло quickfix чем бесило, переход к ошибкам не работал. На том же проекте коробочный :make правильно заполнял.

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

оно криво заполняло quickfix чем бесило, переход к ошибкам не работал.

Да, нечто похожее было и у меня. Видимо по этой причине и не прижился плагин.

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

А мнение фанатика так и вовсе бесценно.

1. Я не являюсь фанатом vim, просто это пока единственный удобный редактор текста.
2. Я рассуждаю о vim, основываясь на собственном опыте.
3. Вы пытаетесь рассуждать о вкусе устриц, которые видели только на картинке.

andreyu ★★★★★ ()

поддержкой сборки прямо из редактора

:make

git

magit

может ещё чего-нибудь вкусного

C++ в vim начинается с youcompleteme

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

clang + rtags + vim-rtags

А поделись, пожалуйста, историей успеха. В частности интересует легкий способ, имея makefile-based проект, получить адекватный jump to definition.

kawaii_neko ★★★★ ()

Хотелось бы без сторонних костылей

Плагины к ним не относятся?И да - в справке вима есть всё. Там даже есть ответ на вечный вопрос философии жизни и вообще. Тока справку никто не читает.

Для начата поставь вимовские плагины NERDTree, clang_complete и т.д.

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

А поделись, пожалуйста, историей успеха. В частности интересует легкий способ, имея makefile-based проект, получить адекватный jump to definition.

Насчёт plain Makefile не скажу, у меня везде cmake с set(CMAKE_EXPORT_COMPILE_COMMANDS ON). Проект добавляется в базу (rc -J /path/to/cmake/build/dir), в vim сделал let g:rtagsAutoLaunchRdm = 1, переключаться между проектами правда приходится вручную (rc -w), открываем cpp/hpp файлик, жмякаем \rj. Ещё мне нравится \ri (вывод типа, когда нужно посмотреть например что за auto спряталось) и \rw (переименование под курсором, aka тот самый рефакторинг пресловутый). У меня работает не хуже QtCreator (который, насколько я знаю, тоже через clang всё это делает).

PS. Работает неторопливо, на каждый сейв rtags перетранслирует релевантные единицы, из-за чего я даже перешёл на :update вместо :w.

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

оно криво заполняло quickfix чем бесило, переход к ошибкам не работал.

Да, нечто похожее было и у меня. Видимо по этой причине и не прижился плагин.

Хм, если я не один такой, тогда надо будет наверное попробовать хотя бы зарепортить ему (Тиму). Потому что vim-dispatch так-то мне больше нравился, чем neomake, например, который сейчас и который всё прячет и на строчки компиляции не помедитировать.

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

А для completion используешь rtags или ycm?

Ничего не использую :( Но тут кому как. Я и в кутэ креаторе когда работал, тоже не пользовался. Юзаю только встроенные вимовские дополнялки по словам и по строкам (^N, ^X^L).

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

Так «это единственный редактор» ≠ «единственный удобный редактор», ну. И это твержение так же не очень-то корректно, т.к. «удобно» исходя из твоего опыта и для тебя соответственно. Следует не забывать добавлять «для меня», чтобы не разводить срач.

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

Так «это единственный редактор» ≠ «единственный удобный редактор», ну.

Ваше неравенство верно.

И это твержение так же не очень-то корректно, т.к. «удобно» исходя из твоего опыта и для тебя соответственно. Следует не забывать добавлять «для меня», чтобы не разводить срач.

Считаю глупым добавлять к СВОЕМУ комментарию всякие «ИМХО», «по моему мнению», етц. Я ведь не скопировал чью-то цитату, а написал свое мнение.

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