У меня есть некоторые вопросы относительно использования VI во время работы с программами c или cpp, это может послужить быстрой ссылкой на людей, которые впервые приходят в vi.
Заранее спасибо.
отказ от ответственности - я не пользователь vi (m), а я использую emacs.
Я подозреваю, что большая часть того, что вы хотите, недоступна при установке vi (m) по умолчанию, однако некоторые функции можно получить с помощью дополнительных программ:
для вашего вопроса 3 (и, возможно, 5 и 6) cscope может предоставить то, что вы ищете. См. Эту ссылку
для вашего вопроса 4 см. этот поток переполнения стека.
для ваших вопросов 5 (и, возможно, 6), ctags могут предоставить то, что вы ищете. См. Эту ссылку.
Я столкнулся с некоторыми из тех же проблем с использованием emacs и запустил интеграцию подобных сторонних программ в emacs, таким образом, мои несколько ограниченные знания по этой теме. Надеюсь, что эти указатели помогут.
Все вопросы, сложенные вместе, вызывают проблему. С точки зрения людей (начиная с Билла Джой, оригинального автора 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
чтобы поддерживать текущую базу тегов.
Есть много учебников и быстрых ссылок. Это один, кажется, выразить свою точку зрения, я пытаюсь передать здесь.
Я получил несколько ответов на вопрос:
1 Как запустить программы CPP с помощью vi, не выходя из нее.
Решение: Использование bang (!), За которым следует команда для запуска. Например, если вы редактируете файл в Vim и хотите узнать, сколько слов в файле, запустите
:! wc %
Мы также можем выйти и перейти в оболочку, набрав: shell или: sh, оставаясь в vi, оболочка откроется, вы можете ввести любой символ no. команд, и когда вы закончите, вы можете просто выйти из оболочки, и вы снова приземлитесь в vi на том же месте.
6 Как искать в разных файлах для какого-либо ключевого слова без выхода из vi.
Решение. Используя то же объяснение в ответе 1. Использование grep:
:! grep <keyword or regular expression>
vi
представляет собой текстовый редактор, а неIDE