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

- 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: начальные сведения

Текстовый редактор vi и его расширенная версия vim уже очень давно являются стандартом в мире Linux. С одной стороны, vim является очень мощным редактором, имеющим огромное количество возможностей, а с другой стороны, vi обычно присутствует в любой системе (даже минимальной, получаемой при загрузке в rescue-режиме с установочного компакт-диска дистрибутива), поэтому в некоторых случаях он может быть единственным имеющимся текстовым редактором (хотя бы для таких случаев, когда поправить какой-нибудь жизненно важный конфиг можно только vi, знать основы работы с ним необходимо всем).

vi(m) существует в 3 вариантах: vi - небольшой консольный редактор, имеющий немного возможностей; vim - консольный редактор с расширенными возможностями; gvim - графический вариант vim. vim может быть собран без поддержки X Window System (полученный исполняемый файл будет называться vim), либо с ее поддержкой (тогда редактор можно будет вызвать командами vim или gvim, причем команда vim в консоли будет вызывать консольный вариант). Большую часть описываемых ниже действий можно производить и в vi, и в (g)vim.

Для начала запустим vim командой vim newfile.txt (чтобы создать новый файл). Мы увидим пустое окно редактора с строкой статуса внизу, курсором в 1-й строке и значком ~ в начале всех остальных строк. Нижняя строка в vim обычно показывает текущую позицию в файле, кроме того, в ней вводятся команды vim, начинающиеся с двоеточия (об этом позже). Значки ~ в начале строк означают, что эти строки не принадлежат редактируемому файлу (т.е. конец файла находится над 1-й строчкой с ~). Сразу после запуска vim находится в т.н. основном режиме (normal mode), в котором текст вводить нельзя. В этом режиме можно выполнять команды обработки текста, нажимая различные клавиши с буквами (в этом основное отличие vim от других редакторов). В частности, перемещаться по тексту можно не только стрелками, но и клавишами h-j-k-l. Для эффективной работы в vim надо знать основные комбинации клавиш. Например, dd удаляет текущую строку, а gqap переформатирует текущий абзац. Но об этом ниже, а сейчас нажмем i или Ins и перейдем в режим вставки. Это обычный режим, в котором можно вводить текст. Наберите что-нибудь и нажмите Esc для возврата в основной режим. Теперь нажмите двоеточие. Внизу экрана откроется командная строка vim. Она нужна для ввода таких команд, как открытие, сохранение файлов, изменение настроек, поиск с заменой и т.д. Нажмите клавишу w и Enter. Файл newfile.txt будет записан на диск. Командой

:w newfile2.txt

можно сохранить редактируемый файл под другим именем. Команда

:q

выходит из vim. Комбинируя w и q, можно выйти с сохранением файла:

:wq

Если надо выйти без сохранения изменений, надо ввести команду

:q!

Самая полезная команда - помощь. Выполняется так:

:help ключевое_слово

Здесь ключевым словом может быть в т.ч. команда (например, :help :help), комбинация клавиш (:help dd) или просто слово-тема (:help syntax)

Теперь рассмотрим некоторые команды основного режима. Напомню, что вводятся они простыми нажатиями клавиш (без двоеточия).

Команды перемещения. Как я уже сказал, клавиши h, j, k и l передвигают курсор аналогично стрелкам. Клавиши w и b передвигают курсор на слово вперед и назад соответственно. Клавиши ^ и $ аналогичны Home и End (те, кто знаком с регулярными выражениями, сразу запомнят эти клавиши). Чтобы передвинуться на несколько "шагов" (слов, символов, строк) сразу, надо ввести цифрами количество шагов, а затем нажать клавишу передвижения. Например, 3w передвинет на 3 слова вперед. Большинство команд в vim позволяют выполнить их таким же образом заданное количество раз. Далее, комбинация gg переместит курсор в начало файла, а G (т.е. Shift-g) - в конец. 17gg или 17G переместят на 17-й строку файла. Клавиша % переместит к скобке, парной той, которая находится под курсором (если она есть).

Команды отмены. Сначала скажу про очень важную icon_wink.gif для любого текстового редактора команду - команду отмены. Клавиша u отменяет последнюю операцию (поддерживается многоуровневая отмена, т.е. последовательные нажатия отменяют все более старые действия), U - все операции в текущей строке. Ctrl-R повторяет последнее отмененное действие (также многоуровнево).

Команды удаления. Клавиша x (как и Del) удаляет символ под курсором, а X - перед курсором. Комбинация клавиши d и команды перемещения удаляет от курсора до позиции, в которую он переместился бы. Например, d$ удаляет до конца строки (это же делает клавиша D), dgg до начала файла, а d3w (как и 3dw) - следующие 3 слова. Такие команды (комбинация действия и команды перемещения) также часто используются в vim. dd удаляет текущую строку, а d3d - 3 строки, начиная от текущей.

Команды редактирования. Обычно редактирование осуществляется в режиме вставки или режиме замены. Для переключения в режим вставки из основного, а также между вставкой и заменой служит клавиша Ins. Кроме того, клавишей i также можно переключиться из основного режима в режим вставки, а клавишей R - сразу в режим замены.Иногда полезны следующие команды переключения: a и A передвигают курсор соответственно на символ влево и до конца строки, а затем включают режим вставки. o и O сначала открывают новую строку соответственно ниже и выше курсора. c{перемещение} действует аналогично d{перемещение}, но после удаления переходит в режим вставки. Еще пара интересных команд - r{символ} заменяет символ под курсором на введенный, не выходя из основного режима (полезно, когда надо исправить в файле всего один символ - вообще не надо переключаться между режимами), ~ изменяет регистр символа под курсором.

Команды работы с буферами обмена. В vim может быть несколько (более 60) буферов обмена (называемых здесь регистрами). Они названы символами a-z, A-Z и 0-9. Все приведенные ниже команды могут начинаться с символа " (кавычка), за которым следует обозначение используемого регистра (о различных регистрах, в т.ч. специальных, можно прочитать в встроенной справке по команде :help registers). Все операции удаления помещают удаляемый текст в регистр. Для копирования вместо d надо использовать клавишу y (одно отличие - Y копирует текущую строку). Для вставки используйте клавишу p (вставляет после курсора) или P (перед курсором).

Визуальный режим. Одно из важнейших преимуществ vim перед vi. В визуальном режиме перемещение курсора выделяет текст. Перейти в этот режим из основного можно клавишей v (включается посимвольное выделение), V (выделяются целые строки) или Ctrl-V (прямоугольное выделение). Над выделенным текстом можно производить действия, в основном режиме требующие указания "передвижения". Так, работают одиночные клавиши d и y, а также gq (форматирует выделенный текст).

Я перечислил лишь основные приемы работы vim. В частности, не были упомянуты возможности поиска и замены, ручное и автоматическое форматирование текста и т.д. Но об этом в другой раз. Кстати, кроме этой статьи новичкам в vim поможет программа vimtutor из состава vim.

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


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