Запуск различных задач разработки c или cpp из vi, например, запуск программы cpp без выхода из vi. & Quot;

У меня есть несколько вопросов, касающихся использования VI при работе с программами c или cpp, это может служить кратким справочным материалом для людей, которые впервые приходят на vi.

  1. Как запускать программы CPP с помощью vi, не выходя из него.
  2. Как получить иерархию типов в vi
  3. Как получить иерархию вызовов в vi
  4. Как выполнить рефакторинг кода в vi, чтобы он выполнялся не только для текущего файла, но и для всех других зависимых файлов.
  5. Как открыть объявление метода, определенного в каком-то другом файле cpp, из того места, где он используется.
  6. Как искать в разных файлах какое-то ключевое слово, не выходя из vi.
  7. Как сохранить отступ программ в vi.

Заранее спасибо.

0

Решение

Отказ от ответственности — я не пользователь vi (m), скорее я использую emacs.

Я подозреваю, что многое из того, что вы хотите, недоступно в стандартной установке vi (m), однако некоторые функции можно получить с помощью дополнительных программ:

на ваш вопрос 3 (и, возможно, 5 & 6) Cscope может предоставить то, что вы ищете. Увидеть эта ссылка

по вашему вопросу 4 смотрите это переполнение стека нить.

на ваши вопросы 5 (и, возможно, 6), ctags может предоставить то, что вы ищете. Увидеть эта ссылка.

Я столкнулся с некоторыми из тех же проблем, используя emacs, и закончил интеграцию подобных сторонних программ в emacs, таким образом, мои несколько ограниченные знания по этой теме. Надеюсь, что эти указатели помогут.

1

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

Я получил часть ответа на вопрос:

1 Как запускать программы CPP, не выходя из vi.

Решение: с помощью bang (!) И команды для запуска. Например, если вы редактируете файл в Vim и хотите узнать, сколько слов в нем, запустите

    :! wc %

Мы также можем выйти и перейти к shell, набрав: shell или: sh, оставаясь в vi, оболочка откроется, вы можете ввести любое no. команд, и когда вы закончите, вы можете просто выйти из оболочки, и вы снова попадете в vi в том же месте.

6 Как искать в разных файлах ключевое слово, не выходя из vi.

Решение: Использование того же, что объяснено в ответе 1. Использование grep:

 :! grep <keyword or regular expression>
0

Все вопросы, собранные вместе, раскрывают проблему точки зрения. С точки зрения людей (начиная с Билла Джоя, первоначального автора vi) кто создал Unix и viприглашение оболочки — это вся среда разработки. vi это просто часть редактора. make является строителем проекта. Файловая система вместе с ls, find, grep и множество других инструментов предоставляет инструменты для группировки файлов и организации.

Вот почему vi имеет богатый набор параметров командной строки, которые позволяют вам назвать несколько файлов для открытия, и где в каждом файле разместить курсор. Вместе с ctags инструмент, вы можете даже спросить vi открыть файл с именованной функцией, не вводя имя файла.

Изнутри vi, вы всегда можете использовать ! Команда для работы с текстом с использованием произвольной программы. !fmt это быстрый и грязный способ сделать обернутый текст, например. И, конечно же, : Команда — ваш вход в удивительно опасную мощь редактирования на основе CLI.

В основе всего этого лежит требование, чтобы вы действительно понимали команды, которые перемещают курсор, и описывали диапазон текста. Первый шаг — замечать каждый раз, когда вы обнаруживаете, что повторяете команду (например, простую команду движения «h», «j», «k» или «l»), пока не достигнете нужного места и не спросите себя, как вы могли бы это сделать. достиг того эффекта с меньшим количеством печатания. Вместо ‘lllll’ произнесите ‘5l’ или, возможно, ‘w’ или лучше ‘fa’, если целью была следующая буква ‘a’, которая, как оказалось, была на пять символов выше.

При правильном мышлении и хорошем понимании более широкого спектра фильтров обработки текста большинство ваших вопросов сводятся к определению правильного диапазона текста и передаче его во внешнюю утилиту в контексте проекта, уже разумно организованного в папки. и с ctags бежать от make поддерживать базу данных тегов актуальной.

Есть много учебников и быстрых ссылок там. Вот этот кажется, выражают точку зрения, которую я пытаюсь донести здесь.

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