Поиск текста
Редактор vi предоставляет два вида поиска : строк и символов. Команды "\" и "?" для поиска строк. При выполнении этих команд в нижней части экрана отображается строка введенная вами для поиска. Различие между командами "\" и "?" : "\" осуществляет поиск вниз по файлу, а "?" - вверх. Команды "n" и "N" повторяют поиск в том же или противоположном направлении соответственно. Некоторые символы имеют специальное значение в редакторе vi - поэтому перед ними должен быть введен символ \.
Специальные символы :
^ начало строки. . любой один символ. * любое число символов. $ конец строки. [ определяет набор символов для поиска. Например : /f[iae]t определит любую комбинацию из следующих : fit fat fet или /a[^bcd] определит любую комбинацию кроме : ab ac ad. < начало или конец слова. Например : /\<the\> определит только слово the, но не there and other. > смотри описание выше.
Символьный поиск осуществляется в текущей строке командами "f" и "F". Команда "f" осуществляет поиск вперед, "F" - назад, курсор перемещается в позицию найденного символа.
Действие команд "t" и "T" аналогично действию "f" и "F". Различие между ними в положении курсора : после выполнения команды "t" курсор перемещается в позицию перед найденным символом, после выполнения команды "T" - после найденного символа.
Повтор поиска осуществляется командами ";" и ",". Команда ";" повторяет поиск в том же направлении, команда "," - в противоположном.
Установка переменной "ic" (:set ic) позволяет осуществить поиск не учитывая регистр.
, Повторить последнюю команду "f", "F", "t" или "T" в обратном направлении. / Искать определенную строку вперед по файлу. ; Повторить последнюю команду "f", "F", "t" или "T". ? Искать определенную строку назад по файлу F Искать определенный символ вперед в текущей строке. При успешном выполнении - курсор перемещается в позицию найденного символа. N Повторить последний поиск "/" или "?" исключая обратное направление. T Искать определенный символ вперед в текущей строке. При успешном выполнении - курсор перемещается в позицию после найденного символа. f Искать определенный символ в текущей строке. При успешном выполнении - курсор перемещается в позицию найденного символа. n Повторить последний поиск "/" или "?". t Искать определенный символ в текущей строке. При успешном выполнении - курсор перемещается в позицию перед найденным символом.