Здравствуйте уважаемые подписчики! Сегодня речь пойдет о такой неприметной на первый взгляд программе как Vim. Разрабатывался этот редактор для простого редактирования текста, а вырос в нечто большее... :-)
Оставив в стороне само собой разумеющуюся возможность ввода и изменения текста, перечислим возможности, несколько выходящие за пределы стандартных:
автозаполнение;
поиск в произвольном направлении лексемы "под курсором";
поиск "определения" лексемы "под курсором";
сравнение двух и более файлов, когда на экран выводятся только не совпадающие фрагменты текстов;
полностью настраиваемая автоподсветка синтаксиса для множества типов файлов с возможностью создания типов собственных;
возможность работы одновременно во многих кодировках, включая UTF-8;
ограниченное только здравым смыслом количество буферов (фактически - открытых файлов);
подобным образом ограниченное количество окон (в данном случае термин "окно" очень точно отражает суть: есть файл, а есть окно, через которое мы содержимое этого файла рассматриваем);
произвольные размеры и положение окон: окно может занимать всю площадь экрана, а может - часть, причём любую, то есть экран может делиться как по горизонтали, так и по вертикали. Переключения - произвольны. Сказанное справедливо как для графического, так и для консольного режимов.
Приведённый список возможностей даже не претендует на полноту: просто перечислены некоторые из существующих, используемые в повседневной практике: редактировании html-кода, правке конфигурационных файлов, анализе log-ов.
Основным, препятствием в освоении vim на первом этапе является наличие у него пяти режимов (modes):
"Вставки/замены": обычное экранное редактирование, когда нажатие цифробуквенных клавиш вызывает ввод соответствующих символов в редактируемый текст, клавиши позиционирования перемещают указатель, а функциональные клавиши выполняют назначенные (вами или - по умолчанию) действия;
"Нормальный": текст не модифицируется, клавиши позиционирования перемещают указатель, все остальные клавиши (или их последовательности) выполняют назначенные действия, опять-таки - вами или по умолчанию;
"Визуальный": режим выделения области с помощью мыши, клавиш перемещения курсора или специальных "меток";
"Операторный": вводимые символы детализируют введённый непосредственно перед этим оператор. Благодаря вводу в этом режиме оператор удаления, например, удалит N символов, слов, строк или область выделенную в визуальном режиме;
"Командный": для ввода команд, а точнее тех из них, которые вы или авторы не сочли нужным связать с функциональными или обычными клавишами и их последовательностями;
Для решивших начать освоение этого редактора могу посоветовать сначала запустить из командной строки команду vimtutor, эта программа найчит вас основам работы с vim.