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