ДЛЯ НАЧАЛА: ЖИВЫЕ

- Knoppix -
Линукс за пять минут
- Puppy Linux -
Хороший друг


ДЛЯ ДЕЛА: ПРОФИ

- Debian -
Он такой один
- Linux Mint -
С родинкой на щеке!
- CentOS -
Копейка рубль бережёт!
- Fedora -
По следам Red Hat
- Ubuntu Linux -
Мы одной крови!
- Mageia -
Красота и удобства
- openSUSE -
Настоящее немецкое качество
- Slackware -
Линукс из кубиков
- ALT Linux -
Что русскому хорошо





ДЛЯ ДЕЛА: РОЛЛЫ

- ArchLinux -
Гениальное - просто!
- PCLinuxOS -
Просто линукс
- Aptosid -
Почувствуй силу!


ДЛЯ ДЕЛА: СОБЕРИ САМ

- Gentoo -
Каждому своё
- LinuxFromScratch -
Линукс с нуля


ДЛЯ ДЕЛА: ЛЁГКИЕ

- DeLiCate -
Старость в радость!
- SLAX -
Тысяча и один модуль


ЗАЩИТА

- OpenWall -
Не стучите, закрыто!
- Kali -
Вам, хакеры!


ПРИЛОЖЕНИЯ

- Planet CCRMA -
Работа со звуком
- VegaStrike -
Каждому по планете!


ЭКСПЕРИМЕНТ

- коЛинуксы -
Не выходя из Виндоус
- GoboLinux -
Очевидно и вероятно
- ReactOS -
Освободите Виндоус!


РОДНЯ

- BSD-семейство -
На плечах гигантов
- OpenIndiana -
До звёзд рукой подать


АРХИВ (2003-2016)
ФОРУМ




НАШИ ПРОЕКТЫ

MATRIX GL
ПОЛЕЗНЫЕ СОВЕТЫ
ПИНГВИН В КАРМАНЕ
ЗАКЛАДКИ
СТАТЬИ
КОНТАКТЫ


ПОМОЧЬ






Личный архив ЕЗ

vim: часть 2

Эта статья является дополнением к предыдущей. Сегодня мы рассмотрим некоторые более "продвинутые" возможности.

Поиск и замена

Для простого поиска по содержимому буфера (от курсора вниз) в обычном режиме нажмите клавишу /, введите регулярное выражение и нажмите Enter. Для повторного поиска нажмите n. В строке для регулярного выражения можно клавишами "вверх" и "вниз" перебирать последние использованные образцы поиска. Для поиска вверх от курсора вместо / нажимайте ?.

Команда для замены выглядит в общем виде так:

:%s/что_заменить/на_что_заменить/флаги

здесь % означает, что замена выполняется во всем файле (можно этот символ опустить, тогда замена будет производиться только в текущей строке). Строки для поиска и замены - обычные регулярные выражения (можете почитать :help regexp). Самые полезные из флагов это g (заменять все вхождения, а не только 1-е), c (запрашивать подтверждение замены), i (игнорировать регистр символов).

Форматирование текста

Команды :le, :ce и :ri выравнивают текст (точнее, по умолчанию текущую строку или выделенный в визуальном режиме блок) соответственно по левому краю, центру и правому краю. Ширина области текста определяется переменной textwidth. Комбинация клавиш gqap переформатирует текущий абзац (делая ширину каждой его строки меньше либо равной textwidth и дополняя слишком короткие строки словами из следующих).

Некоторые полезности для программистов

Автоматические отступы - это очень полезная вещь при написании программ. Если режим autoindent включен (командой :set autoindent или просто :set ai, в дальнейшем буду указывать лишь короткие имена режимов), каждая новая строка будет начата с таким же отступом, как предыдущая. Кроме того, если включен режим cindent (:set cin), при написании определенных конструкций, по правилам оформления кода требующих увеличения или уменьшения отступа, отступ будет автоматически изменен на величину shiftwidth (установите эту величину в соответствии с используемым стилем оформления).

Беда всех программистов - отсутствие единообразия в использовании Tab для создания отступов и в принятой в различных редакторах длине Tab. В vim есть несколько параметров, связанных с этой проблемой. Режим smarttab (:set sta) при включении позволяет нажатием Tab в начале строки вводить не tabstop символов, а shiftwidth, т.е. величину принятого отступа вместо принятого размера Tab. Параметр tabstop равен числу символов, в которые "раскрывается" на экране встреченный vim'ом в файле символ Tab. Режим expandtab (:set et) заставляет vim при открытии файла заменять все символы Tab на соответствующее число пробелов, причем при простом сохранении такого файла пробелы будут сохранены вместо символов Tab. Поэтому при редактировании файла, раскрытие Tab'ов в котором нежелательно (например, .diff-файлы или Makefile), имеет смысл сразу после открытия дать команду :set noet ts=8 (что равносильно :set noexpandtab и :set tabstop=8).

Клавиши < и > сдвигают выделенный блок на величину shiftwidth влево и вправо соответственно.

Клавиша = форматирует выделенный в визуальном режиме блок на основе того же алгоритма, что и cindent. Впрочем, можно выставить значение переменной equalprg равным, например, indent - программе для автоматического форматирования C-исходников (о ней я обязательно расскажу как-нибудь).

Вернуться к оглавлению


При частичной или полной перепечатке, переводе, переработке материалов сайта ссылка на Knoppix.ru обязательна.
(c) Knoppix.ru 2003 - 2016