Страшный, страшный vi…

Когда в предыдущей заметке я упомянул редактор vi, услышал просто стон “нет, только не vi!”. Ну да, это же редактор, который “только пищит и портит файлы”. Неокрепшая духом молодежь выходит из него по кнопке [Reset], да и нынешние гуру со смехом вспоминают сколько неприятных минут им доставил странный редактор, когда они впервые с ним столкнулись. И я в первый раз из него сумел выбраться только через Ctrl+Z и убивание процесса через “kill -9”. На FreeBSD (именно она, а не Linux, была первой UNIX-системой, с которой я познакомился) был гораздо более дружественный редактор ee , vi по сравнению с ним был очень непонятен.
Но от своей начальной непонятности vi не становится менее мощным. И у него есть огромный плюс – он есть ВЕЗДЕ, начиная от встраиваемых систем, заканчивая суперкомпьютерами. Как ни странно, vi развивается, и на Linux заменен на очень гибкий и мощный vim, практически везде теперь он и используется, vi является просто ссылкой на vim.

Есть один интересный нюанс – по умолчанию vim работает в режиме совместимости vi, при котором многие возможности vim недоступны; чтобы перевести его в режим “полноценности”, надо выполнить команду:

$ touch ~/.vimrc

Итак, что же такое vi? Vi – визуальный редактор, предназначенный для быстрой и эффективной работы, без отвлечения на возюкание мышкой. Он имеет 2 режима – командный и редактирования (вставки, в левом нижнем углу экрана появится надпись — INSERT –). Редактирование всегда начинается в командном режиме, возврат в него происходит по кнопке [ESC] вне зависимости от того в каком режиме мы находились. Здесь мы уже можем вводить команды, например :q! (выход из редактора без сохранения изменений). Все команды срабатывают сразу по нажатию клавиши, и только команды начинающиеся с : срабатывают по нажатию [Enter]. ничего сложного, но поначалу может быть непривычно.

Приведу основные команды, которых должно вполне хватить для редактирования текстового файла:


навигация вверх, вниз, вправо, влево: k, j, l, h ([Up], [Down], [Right], [Left])
вставить текст перед курсором, строкой: i, I
добавить текст после курсора, строки: a, A
удалить символ под курсором, перед: x, X
удалить до конца строки: D
удалить строку: dd
повторить последнюю команду редактирования: .
отменить последнее изменение: u
отменить все изменения в строке: U
поиск по тексту вперед: /string
поиск по тексту назад: ?string
поиск и замена: :s pattern/string/flags
(флаги: g - все в каждой строке, c - подтверждение каждого изменения)
выход с сохранением изменений: :x, :wq
выход после сохранения: :q
выход с отменой всех изменений: :q!
сохранение файла, сохранить как: :w, :w filename
добавить в файл: :w >> filename
вставить содержимое файла: :r filename
вставить вывод команды: :r !program
редактировать новый файл: :e filename
следующий файл: :n
предыдущий файл: :p

Vim – один из самых мощных текстовых редакторов, уступающий пожалуй только emacs. Если есть желание познакомиться с ним поближе и использовать в работе на полную катушку, то, прежде всего, необходимо установить полную версию (на Ubuntu, например, в поставке идет крайне урезанная версия):

$ sudo apt-get install vim-runtime vim-doc

Посмотреть какие интересующие нас пакеты уже установлены можно так:

$ dpkg --get-selections | grep vim

Можно начать с изучения документации, в поставке программы ее более чем достаточно. Есть даже книга по vim – Vim Book (на основе компиляции HTML-докуентации).

Любители шпаргалок могут воспользоваться “VI Reference Card” или “VIM Quick Reference“.

Leave a comment

Your comment